2012-08-04 Sandra Loosemore <sandra@codesourcery.com>
[official-gcc.git] / gcc / ChangeLog
blob9292c7b651abdffef75443184941cab14af68048
1 2012-08-04  Sandra Loosemore  <sandra@codesourcery.com>
2             Richard Sandiford  <rdsandiford@googlemail.com>
4         * config/mips/mips.c (mips_option_override): Check -fpic
5         for compatibility with -mabicalls and ABI.
7 2012-08-04  Catherine Moore  <clm@codesourcery.com>
8             Sandra Loosemore  <sandra@codesourcery.com>
10         * config/mips/xlr.md (ir_xlr_alu_clz): New insn_reservation.
11         (ir_xlr_alu): Remove clz.
12         * config/mips/mips-cpus.def (xlr): Set PTF_AVOID_BRANCHLIKELY.
14 2012-08-04  Richard Earnshaw  <rearnsha@arm.com>
16         * arm.c (arm_gen_constant): Use SImode when preparing operands for
17         gen_extzv_t2.
19 2012-08-04  Uros Bizjak  <ubizjak@gmail.com>
21         * config/i386/i386.h (QI_REGNO_P): New define.
22         (ANY_QI_REGNO_P): Ditto.
23         (GENERAL_REGNO_P): Use IN_RANGE macro.
24         (QI_REG_P): Use QI_REGNO_P.
25         (ANY_QI_REG_P): Use GENERAL_REGNO_P and QI_REGNO_P.
26         (HARD_REGNO_CALLER_SAVE_MODE): Use QI_REGNO_P.
27         * config/i386/i386.c (ix86_hard_regno_mode_ok): Ditto.
28         (x86_extended_QIreg_mentioned_p): Ditto.  Also check if
29         register is a general register.
31 2012-08-03  Uros Bizjak  <ubizjak@gmail.com>
33         * config/i386/sync.md (*atomic_fetch_add_cmp<mode>): Use
34         incdec_operand predicate to return INC or DEC insn mnemonic.
35         Add %K operand modifier.
36         (atomic_add<mode>): Use incdec_operand predicate to
37         return INC or DEC insn mnemonic.
38         (atomic_dec<mode>): Ditto.
40 2012-08-03  Michael Matz  <matz@suse.de>
42         PR tree-optimization/54146
43         * cfgexpand.c (add_scope_conflicts_1): Use bitmap_ior_into.
44         (add_scope_conflicts): Iterate in RPO order.
45         (add_stack_protection_conflicts): Iterate over the other triangle.
46         (fini_vars_expansion): Clear stack_vars_sorted.
48 2012-08-03  Marc Glisse  <marc.glisse@inria.fr>
50         PR tree-optimization/30318
51         * double-int.c (mul_double_wide_with_sign): New function.
52         (mul_double_with_sign): Call the new function.
53         * double-int.h (mul_double_wide_with_sign): Declare the new function.
54         * tree-vrp.c (extract_range_from_binary_expr_1) [MULT_EXPR]:
55         Handle integer types that wrap on overflow.
56         (quad_int_cmp): New helper function.
57         (quad_int_pair_sort): Likewise.
59 2012-08-03  Richard Guenther  <rguenther@suse.de>
61         * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query
62         is_gimple_reg on the SSA name, not its variable.
63         (vect_update_ivs_after_vectorizer): Likewise.
64         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
65         * tree-if-conv.c (if_convertible_phi_p): Likewise.
66         (predicate_scalar_phi): Likewise.
67         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
68         (vect_analyze_scalar_cycles_1): Likewise.
69         * tree-ssa-live.c (register_ssa_partition_check): Likewise.
70         * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
71         * tree-ssa-reassoc.c (phi_rank): Likewise.
72         * tree-parloops.c (separate_decls_in_region_name): Use
73         replace_ssa_name_symbol.
74         * tree-predcom.c (base_names_in_chain_on): Likewise.
75         * matrix-reorg.c (update_type_size): Query the type of the SSA name,
76         not its variable.
77         * gimple-ssa-strength-reduction.c (create_mul_ssa_cand): Likewise.
78         (create_mul_imm_cand): Likewise.
79         (create_add_ssa_cand): Likewise.
80         (create_add_imm_cand): Likewise.
81         (slsr_process_add): Likewise.
82         * tree-inline.c (remap_ssa_name): Do not set the type of the
83         new SSA_NAME.
84         * tree-ssa-structalias.c (get_constraint_for_ssa_var): Clarify assert.
85         Check for default def first.
87 2012-08-04  Steven Bosscher  <steven@gcc.gnu.org>
89         * cfgrtl.c (print_rtl_with_bb): Do not print a newline between insns.
91         * sched-vis.c (print_pattern): Handle SEQUENCE also.
93 2012-08-02  Richard Henderson  <rth@redhat.com>
95         Revert:
96         PR 34548
97         * function.h (struct rtl_data): Add max_dynamic_stack_alignment.
98         * cfgexpand.c (gimple_expand_cfg): Initialise it.
99         * explow.c (allocate_dynamic_stack_space): Set it.  Simplify
100         alignment requirements given the known alignment of dynamic_offset.
101         * function.c (instantiate_virtual_regs): Align dtnamic_offset.
103 2012-08-02  Kenneth Zadeck <zadeck@naturalbridge.com>
105         * cfgexpand.c (expand_debug_locations):  Encapsulate test for
106         CONST_DOUBLE in macro.
107         * combine.c (try_combine, gen_lowpart_for_combine): Ditto.
108         * cprop.c (implicit_set_cond_p): Ditto.
109         * cselib.c (rtx_equal_for_cselib_1): Ditto.
110         * expmed.c (expand_mult): Ditto.
111         * expr.c (convert_modes): Ditto.
112         * ira-costs.c (record_reg_classes): Ditto.
113         * ira-lives.c (single_reg_class): Ditto.
114         * optabs.c (expand_copysign_absneg, expand_copysign): Ditto.
115         * print-rtl.c (print_rtx): Ditto.
116         * recog.c (simplify_while_replacing, const_double_operand)
117         (asm_operand_ok, constrain_operands): Ditto.
118         * reg-stack.c (subst_stack_regs_pat): Ditto.
119         * reload.c (find_reloads, find_equiv_reg): Ditto.
120         * rtlanal.c (replace_rtx): Remove test.
121         * rtlanal.c (constant_pool_constant_p, split_double): Encapsulate
122         test for CONST_DOUBLE in macro.
123         * simplify-rtx.c (mode_signbit_p, avoid_constant_pool_reference)
124         (simplify_unary_operation_1, simplify_const_unary_operation)
125         (simplify_binary_operation_1, simplify_const_binary_operation)
126         (simplify_relational_operation_1)
127         (simplify_const_relational_operations)
128         (implify_subreg): Ditto.
129         * varasm.c (output_constant_pool_2): Ditto.
130         * rtl.h (CONST_DOUBLE_AS_INT_P, CONST_DOUBLE_AS_FLOAT_P): New macros.
131         * rtl.def (CONST_DOUBLE):  Updated comments.
133 2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>
135         PR target/51931
136         * config/mips/mips-protos.h (mips_strip_unspec_address): Declare.
137         * config/mips/mips.c (mips_strip_unspec_address): Make extern.
138         (mips16_rewrite_pool_constant): Make a copy of the pool constant
139         before adding to a PC-relative table.
140         (mips16_lay_out_constants): Add a SPLIT_P parameter.
141         (mips16_load_branch_target, mips16_split_long_branches): New functions.
142         (mips_reorg): Update call to mips16_lay_out_constants.
143         Call mips16_split_long_branches.
144         * config/mips/predicates.md (pc_or_label_operand): Delete.
145         * config/mips/mips.md (length): Add a calculation for MIPS16 branches.
146         Move the extended_mips16 handling further down.
147         (*branch_equality<mode>_mips16): Replace use pc_or_label_operand
148         with explicit label_ref and pc.  Follow the usual operand numbering.
149         (*branch_equality<mode>_mips16_inverted): New pattern.
150         (*jump_mips16): Add length attribute.
151         (indirect_jump_and_restore_<mode>): New pattern.
152         (consttable_int): Call mips_strip_unspec_address on the operand.
154 2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>
156         * recog.c (split_insn): Copy the original SET_SRC before using
157         it as a note.
159 2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>
161         * reorg.c (dbr_schedule): Delete REG_BR_PRED loop.
163 2012-08-02  Marc Glisse  <marc.glisse@inria.fr>
165         PR tree-optimization/53805
166         * fold-const.c (invert_tree_comparison): Invert ORDERED_EXPR and
167         UNORDERED_EXPR even for trapping floating point.
169 2012-08-02  H.J. Lu  <hongjiu.lu@intel.com>
171         PR middle-end/53321
172         PR middle-end/53865
173         * ipa-inline-analysis.c (inline_free_summary): Return if
174         inline_edge_summary_vec is NULL.
176         * ipa-split.c (execute_split_functions): Check if a function
177         is inlinable only if inline_edge_summary_vec != NULL.
179         * ipa.c (symtab_remove_unreachable_nodes): Restore
180         cgraph_propagate_frequency call when something was changed.
181         (free_inline_summary): New function.
182         (pass_ipa_free_inline_summary): New pass.
184         * passes.c (init_optimization_passes): Add
185         pass_ipa_free_inline_summary before pass_ipa_tree_profile.
187         * timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
189         * tree-pass.h (pass_ipa_free_inline_summary): New.
191 2012-08-02  Richard Earnshaw  <rearnsha@arm.com>
193         * arm.c (arm_gen_constant): Use UBFX for some AND operations when
194         available.
196 2012-08-02  Richard Guenther  <rguenther@suse.de>
198         * tree-into-ssa.c (struct common_info_d): New struct.
199         (struct var_info_d, struct ssa_name_info): Use it.
200         (get_ssa_name_ann): Adjust.
201         (get_phi_state, set_phi_state): Remove.
202         (get_common_info): New function.
203         (get_current_def, set_current_def): Adjust.
204         (get_def_blocks_for): Take a common info as param.
205         (set_def_block): Call get_common_info once.
206         (set_livein_block): Likewise.
207         (find_def_blocks_for): Adjust.
208         (insert_phi_nodes): Likewise.
209         (register_new_def): Call get_common_info once.
210         (get_reaching_def): Likewise.
211         (rewrite_debug_stmt_uses): Likewise.
212         (rewrite_leave_block): Likewise.
213         (dump_currdefs): Likewise.
214         (debug_var_infos_r): Adjust.
215         (register_new_update_single): Call get_common_info once.
216         (maybe_replace_use_in_debug_stmt): Likewise.
217         (rewrite_update_leave_block): Likewise.
218         (mark_use_interesting): Adjust.
219         (create_new_def_for): Likewise.
220         (update_ssa): Likewise.
222 2012-08-02  Michael Matz  <matz@suse.de>
224         * tree-ssa-live.c (set_is_used): Return a bool.
225         (mark_all_vars_used): Don't take data argument.
226         (mark_all_vars_used_1): Adjust calls to above, merge handling
227         of local and global vars.
228         (remove_unused_scope_block_p): Don't take global_unused_vars,
229         merge handling of local and global vars.
230         (remove_unused_locals): Don't allocate/fill/pass global_unused_vars,
231         use is_used_p for local and global vars.
233 2012-08-02  Richard Guenther  <rguenther@suse.de>
235         * tree-flow.h (make_rename_temp): Remove.
236         * tree-dfa.c (make_rename_temp): Likewise.
237         * cgraphunit.c (thunk_adjust, assemble_thunk): Use create_tmp_reg
238         instead of make_rename_temp.
239         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
240         expand_omp_atomic_pipeline): Likewise.
241         * trans-mem.c (tm_log_emit_save_or_restores, build_tm_load,
242         build_tm_store, expand_call_tm, expand_transaction,
243         ipa_tm_insert_gettmclone_call): Likewise.
244         * tree-complex.c (expand_complex_div_wide): Likewise.
245         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
246         Likewise.
247         * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm):
248         Likewise.
249         * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
250         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
251         gimple_mod_subtract): Likewise.
253 2012-08-02  Richard Guenther  <rguenther@suse.de>
255         * tree-flow.h (set_default_def): Rename to ...
256         (set_ssa_default_def): ... this.  Take a struct function argument.
257         (gimple_default_def): Rename to ...
258         (ssa_default_def): ... this.
259         (get_or_create_ssa_default_def): New function.
260         * tree-dfa.c: Likewise.
261         (dump_variable): Adjust.
262         * ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check
263         for used parameters.
264         * ipa-split.c (consider_split): Adjust, avoid repeated default-def
265         lookups.
266         (split_function): Likewise.
267         * lto-streamer-in.c (input_ssa_names): Adjust.
268         * omp-low.c (expand_omp_taskreg): Likewise.
269         * tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun.
270         * tree-complex.c (init_parameter_lattice_values): Adjust.
271         (get_component_ssa_name): Likewise.
272         (update_parameter_components): Likewise.
273         * tree-inline.c (remap_ssa_name): Likewise.
274         (setup_one_parameter): Likewise.
275         (initialize_inlined_parameters): Likewise.
276         (declare_return_variable): Likewise.
277         (expand_call_inline): Likewise.
278         (tree_function_versioning): Likewise.
279         * tree-into-ssa.c (get_default_def_for): Remove.
280         (get_reaching_def): Use get_or_create_ssa_default_def instead.
281         * tree-predcom.c (replace_ref_with): Adjust.
282         * tree-sra.c (get_repl_default_def_ssa_name): Likewise.
283         (is_unused_scalar_param): Likewise.
284         (ptr_parm_has_direct_uses): Likewise.
285         (sra_ipa_reset_debug_stmts): Likewise.
286         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust.
287         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
288         * tree-ssa-live.c (verify_live_on_entry): Likewise.
289         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise,
290         avoid repeated default def lookups.
291         * tree-ssa-sccvn.c (run_scc_vn): Likewise.
292         * tree-tailcall.c (arg_needs_copy_p): Adjust.
293         (tree_optimize_tail_calls_1): Likewise.
295 2012-08-02  Richard Guenther  <rguenther@suse.de>
297         PR tree-optimization/50672
298         Revert
299         2012-08-01  Richard Guenther  <rguenther@suse.de>
301         * tree-ssa-tail-merge.c (release_last_vdef): Remove.
302         (replace_block_by): Adjust.
304 2012-08-02  Richard Guenther  <rguenther@suse.de>
306         * tree-dfa.c (referenced_var_lookup): Remove.
307         (find_referenced_vars): Remove.
308         (pass_referenced_vars): Likewise.
309         (make_rename_temp): Do not add referenced vars.
310         (dump_referenced_vars): Remove.
311         (debug_referenced_vars): Likewise.
312         (dump_dfa_stats): Do not dump referenced var stats.
313         (find_vars_r): Remove.
314         (find_referenced_vars_in): Likewise.
315         (referenced_var_check_and_insert): Likewise.
316         (add_referenced_var_1): Likewise.
317         (remove_referenced_var): Likewise.
318         * tree-flow.h (referenced_var_lookup): Likewise.
319         (struct gimple_df): Remove referenced_vars member.
320         (typedef referenced_var_iterator): Remove.
321         (FOR_EACH_REFERENCED_VAR): Likewise.
322         (num_referenced_vars): Likewise.
323         (debug_referenced_vars, dump_referenced_vars): Likewise.
324         (add_referenced_var_1, add_referenced_var): Likewise.
325         (remove_referenced_var): Likewise.
326         (find_referenced_vars_in): Likewise.
327         * tree-flow-inline.h (gimple_referenced_vars): Remove.
328         (first_referenced_var): Likewise.
329         (end_referenced_vars_p): Likewise.
330         (next_referenced_var): Likewise.
331         * cfgexpand.c (update_alias_info_with_stack_vars): Remove assert.
332         * gimple-pretty-print.c (pp_points_to_solution): Dump UIDs
333         unconditionally.
334         * tree-into-ssa.c (dump_decl_set): Likewise.
335         (pass_build_ssa): Do not require PROP_referenced_vars.
336         * tree-ssa.c (target_for_debug_bind): Virtual operands are
337         not suitable, but all register type vars are.
338         (init_tree_ssa): Do not allocate referenced vars.
339         (delete_tree_ssa): Do not free referenced vars.
340         * cgraphunit.c (init_lowered_empty_function): Do not set
341         PROP_referenced_vars.
342         (assemble_thunk): Do not add referenced vars.
343         * gimple-fold.c (canonicalize_constructor_val): Likewise.
344         (gimplify_and_update_call_from_tree): Likewise.
345         * gimple-streamer-in.c (input_bb): Likewise.
346         * passes.c (init_optimization_passes): Do not run
347         pass_referenced_vars.
348         (dump_properties): Do not dump PROP_referenced_vars.
349         * tree-inline.c (remap_decl): Do not add referenced vars.
350         (remap_gimple_op_r): Likewise.
351         (copy_tree_body_r): Likewise.
352         (copy_bb): Likewise.
353         (setup_one_parameter): Likewise.
354         (declare_return_variable): Likewise.
355         (copy_decl_for_dup_finish): Likewise.
356         (copy_arguments_for_versioning): Likewise.
357         (tree_function_versioning): Likewise.
358         * tree-pass.h (PROP_referenced_vars): Remove.
359         (pass_referenced_vars): Likewise.
360         * tree-profile.c (gimple_gen_edge_profiler): Do not add
361         referenced vars.
362         (gimple_gen_interval_profiler): Likewise.
363         (gimple_gen_pow2_profiler): Likewise.
364         (gimple_gen_one_value_profiler): Likewise.
365         (gimple_gen_ic_profiler): Likewise.
366         (gimple_gen_average_profiler): Likewise.
367         (gimple_gen_ior_profiler): Likewise.
368         * tree-ssa-live.c (remove_unused_locals): Do not touch referenced vars.
369         * tree-cfg.c (replace_ssa_name): Do not add referenced vars.
370         (move_stmt_op): Likewise.
371         * tree-ssa-operands.c (create_vop_var): Likewise.
372         * gimple-low.c (record_vars_into): Likewise.
373         * gimplify.c (gimple_regimplify_operands): Likewise.
374         (force_gimple_operand_1): Likewise.
375         * omp-low.c (expand_omp_for_generic): Likewise.
376         (expand_omp_for_static_chunk): Likewise.
377         (expand_omp_atomic_pipeline): Likewise.
378         * graphite-clast-to-gimple.c (graphite_create_new_loop): Likewise.
379         (translate_clast_assignment): Likewise.
380         * graphite-sese-to-poly.c (create_zero_dim_array): Likewise.
381         (handle_scalar_deps_crossing_scop_limits): Likewise.
382         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
383         * ipa-split.c (split_function): Likewise.
384         * matrix-reorg.c (transform_access_sites): Likewise.
385         * trans-mem.c (tm_log_add): Likewise.
386         (ipa_tm_insert_gettmclone_call): Likewise.
387         * tree-complex.c (create_one_component_var): Likewise.
388         * tree-if-conv.c (ifc_temp_var): Likewise.
389         * tree-parloops.c (take_address_of): Likewise.
390         (initialize_reductions): Likewise.
391         (separate_decls_in_region_name): Likewise.
392         (create_call_for_reduction_1): Likewise.
393         (separate_decls_in_region): Likewise.
394         * tree-predcom.c (predcom_tmp_var): Likewise.
395         (reassociate_to_the_same_stmt): Likewise.
396         * tree-sra.c (build_ref_for_offset): Likewise.
397         (create_access_replacement): Likewise.
398         (get_replaced_param_substitute): Likewise.
399         (sra_ipa_reset_debug_stmts): Likewise.
400         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
401         (rewrite_bittest): Likewise.
402         * tree-ssa-loop-ivopts.c (create_new_iv): Likewise.
403         * tree-ssa-loop-manip.c (create_iv): Likewise.
404         (tree_transform_and_unroll_loop): Likewise.
405         * tree-ssa-math-opts.c (powi_as_mults): Likewise.
406         (build_and_insert_call): Likewise.
407         (gimple_expand_builtin_cabs): Likewise.
408         (execute_optimize_bswap): Likewise.
409         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
410         (abs_replacement): Likewise.
411         (cond_store_replacement): Likewise.
412         (cond_if_else_store_replacement_1): Likewise.
413         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
414         * tree-ssa-pre.c (get_representative_for): Likewise.
415         (create_expression_by_pieces): Likewise.
416         (insert_into_preds_of_block): Likewise.
417         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
418         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
419         (eliminate_redundant_comparison): Likewise.
420         (rewrite_expr_tree_parallel): Likewise.
421         (get_reassoc_pow_ssa_name): Likewise.
422         * tree-ssa-strlen.c (get_string_length): Likewise.
423         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
424         (build_arrays): Likewise.
425         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
426         (create_tailcall_accumulator): Likewise.
427         * tree-vect-data-refs.c (vect_get_new_vect_var): Likewise.
428         (vect_create_addr_base_for_vector_ref): Likewise.
429         (vect_permute_store_chain): Likewise.
430         (vect_permute_load_chain): Likewise.
431         * tree-vect-generic.c (expand_vector_divmod): Likewise.
432         * tree-vect-loop-manip.c (set_prologue_iterations): Likewise.
433         (vect_build_loop_niters): Likewise.
434         (vect_generate_tmps_on_preheader): Likewise.
435         (vect_update_ivs_after_vectorizer): Likewise.
436         (vect_gen_niters_for_prolog_loop): Likewise.
437         (vect_do_peeling_for_alignment): Likewise.
438         (vect_create_cond_for_align_checks): Likewise.
439         * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
440         (vect_handle_widen_op_by_const): Likewise.
441         (vect_operation_fits_smaller_type): Likewise.
442         (vect_recog_over_widening_pattern): Likewise.
443         * tree-vect-stmts.c (vect_init_vector): Likewise.
445 2012-08-01  Alexandre Oliva  <aoliva@redhat.com>
447         PR debug/52983
448         * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
450 2012-08-01  Alexandre Oliva  <aoliva@redhat.com>
452         PR debug/52983
453         * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
454         falling back to copy_rtx on non-autoinc machines.
455         (propagate_for_debug_subst): Always use cleanup_auto_inc_dec.
457 2012-08-01  Alexandre Oliva  <aoliva@redhat.com>
459         PR debug/52983
460         * valtrack.h, valtrack.c: New.
461         * Makefile.in (VALTRACK_H): New.
462         (OBJS): Add valtrack.o.
463         (valtrack.o): New.
464         (cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H.
465         * combine.c: Include valtrack.h.
466         (make_compound_operation): Publish.
467         (cleanup_auto_inc_dec): Move to valtrack.c.
468         (struct rtx_subst_pair, propagate_for_debug_subst): Likewise.
469         (propagate_for_debug): Likewise.  Add this_basic_block parameter.
470         Adjust all callers.
471         * cselib.c: Include valtrack.h.
472         * dce.c: Likewise.
473         * df-problems.c: Likewise.
474         (dead_debug_init, dead_debug_reset_uses): Move to valtrack.c.
475         (dead_debug_finish, dead_debug_add): Likewise.
476         (dead_debug_insert_temp): Likewise.
477         * df.h (struct dead_debug_use): Move to valtrack.h.
478         (struct dead_debug, enum debug_temp_where): Likewise.
479         (dead_debug_init, dead_debug_reset_uses): Move to valtrack.h.
480         (dead_debug_finish, dead_debug_add): Likewise.
481         (dead_debug_insert_temp): Likewise.
482         * rtl.h (make_compound_operation): Declare.
484 2012-08-01  Catherine Moore  <clm@codesourcery.com>
485             Sandra Loosemore  <sandra@codesourcery.com>
487         * config/mips/mips-cpus.def (34kn): New.
488         * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Add 34kn.
489         (BASE_DRIVER_SELF_SPECS): Do not imply -mdsp for the 34kn.
490         * config/mips/mips-tables.opt: Regenerate.
491         * doc/invoke.texi (MIPS Options): Document -march=34kn.
493 2012-08-01  Richard Henderson  <rth@redhat.com>
495         * expmed.h (NUM_MODE_PARTIAL_INT): New.
496         (NUM_MODE_VECTOR_INT, NUM_MODE_IP_INT, NUM_MODE_IPV_INT): New.
497         (struct expmed_op_cheap): Size one array on NUM_MODE_IPV_INT.
498         (struct expmed_op_costs): Likewise.
499         (struct target_expmed): Size x_convert_cost on NUM_MODE_IP_INT.
500         (expmed_mode_index): New.
501         (expmed_op_cheap_ptr, expmed_op_cost_ptr): Use expmed_mode_index.
502         (convert_cost_ptr): Likewise.
503         * expmed.c (struct init_expmed_rtl): Rename convert to trunc.
504         (init_expmed_one_conv): Split out from ...
505         (init_expmed_one_mode): ... here.  Iterate conversions over
506         partial integer modes too.
507         (init_expmed): Iterate over partial integer modes too.
509 2012-08-01  Richard Henderson  <rth@redhat.com>
511         * config/m32c/m32c.c (TARGET_INIT_LIBFUNCS): Remove.
512         (m32c_init_libfuncs): Remove.
513         * config/m32c/cond.md (cstore<QHPSI>4_16): Rename from cstore<QHPSI>4.
514         (cstore<QHPSI>4): New expander.
516 2012-08-01  Richard Guenther  <rguenther@suse.de>
518         * tree-flow-inline.h (referenced_var): Remove.
519         * tree-ssa-coalesce.c (create_outofssa_var_map): Remove duplicate
520         checking code.
521         * tree-sra.c (candidates): New global hashtable.
522         (candidate): New function.
523         (sra_initialize): Initialize candidates.
524         (sra_deinitialize): Free candidates.
525         (disqualify_candidate): Remove candidate from candidates.
526         (maybe_add_sra_candidate): New function.
527         (find_var_candidates): Walk over all local decls and parameters,
528         add candidates to candidates hashtable.
529         (find_param_candidates): Add candidates to candidates hashtable.
530         (analyze_all_variable_accesses): Use candidate instead of
531         referenced_var.
533 2012-08-01  Tom de Vries  <tom@codesourcery.com>
535         * tree-vrp.c (find_case_label_ranges): New function.
536         (vrp_visit_switch_stmt, simplify_switch_using_ranges): Use
537         find_case_label_ranges instead of find_case_label_range.  Handle second
538         range.
540 2012-08-01  Michael Matz  <matz@suse.de>
542         * tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
543         * tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
544         (dump_dfa_stats): Don't dump stats about var anns.
545         (collect_dfa_stats): Don't collect them.
546         (add_referenced_var_1): Don't set var annotation pointers.
547         (remove_referenced_var): Ditto, and only remove it it's in the
548         hash table.
550         * tree-flow-inline.h (var_ann): Remove.
551         * tree-flow.h (struct var_ann_d, var_ann_t): Remove.
553         * tree-inline.c (remapped_type): Remove.
554         (can_be_nonlocal): Most variable will be considered live here,
555         return false earlier.
556         (remap_decls): Don't call var_ann, all variables will be considered
557         referenced here.
558         (copy_debug_stmt): Ditto, and use is_global_var.
560         * tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
561         determine if a variable was referred to, not var_ann.
562         * tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
563         (remove_unused_locals): Ditto.
564         * tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
565         * tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
566         * tree.c (copy_node_stat): Don't clear var ann pointer.
567         * tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
568         ann member.
569         (DECL_VAR_ANN_PTR): Remove.
571 2012-08-01  Michael Matz  <matz@suse.de>
573         * tree-flow.h (struct var_ann_d): Rename used member.
574         (set_is_used): Don't declare.
575         * tree-flow-inline.h (clear_is_used): Remove.
576         (set_is_used, is_used_p): Move to ...
577         * tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
578         on the side bitmap.
579         (usedvars): New bitmap.
580         (dump_scope_block): Don't dump unusedness.
581         (remove_unused_locals): Allocate and free usedvars.
582         * tree-nrv.c (tree_nrv): Don't clear used flags here.
584 2012-08-01  Michael Matz  <matz@suse.de>
586         * tree-flow.h (struct var_ann_d): Remove base_var_processed and
587         base_index members.
588         * tree-ssa-live.h (struct _var_map): Remove basevars member.
589         (VAR_ANN_BASE_INDEX): Remove.
590         * tree-ssa-live.c (var_map_base_init): Use a hash table instead
591         of var annotation to compress index space.  Don't deal with above
592         removed members.
593         (var_map_base_fini): Don't free basevars.
594         (init_var_map): Don't clear basevars.
596 2012-08-01  Bill Schmidt  <wschmidt@linux.ibm.com>
598         * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Change
599         base_name to base_expr.
600         (struct cand_chain_d): Likewise.
601         (base_cand_hash): Likewise.
602         (base_cand_eq): Likewise.
603         (record_potential_basis): Likewise.
604         (alloc_cand_and_find_basis): Likewise.
605         (create_mul_ssa_cand): Likewise.
606         (create_mul_imm_cand): Likewise.
607         (create_add_ssa_cand): Likewise.
608         (create_add_imm_cand): Likewise.
609         (slsr_process_cast): Likewise.
610         (slsr_process_copy): Likewise.
611         (dump_candidate): Likewise.
612         (base_cand_dump_callback): Likewise.
613         (unconditional_cands_with_known_stride_p): Likewise.
614         (cand_increment): Likewise.
616 2012-08-01  Bill Schmidt  <wschmidt@linux.ibm.com>
618         PR tree-optimization/46556
619         * gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF.
620         (base_cand_map): Change to hash table.
621         (base_cand_hash): New function.
622         (base_cand_free): Likewise.
623         (base_cand_eq): Likewise.
624         (lookup_cand): Change base_cand_map to hash table.
625         (find_basis_for_candidate): Likewise.
626         (base_cand_from_table): Exclude CAND_REF.
627         (restructure_reference): New function.
628         (slsr_process_ref): Likewise.
629         (find_candidates_in_block): Call slsr_process_ref.
630         (dump_candidate): Handle CAND_REF.
631         (base_cand_dump_callback): New function.
632         (dump_cand_chains): Change base_cand_map to hash table.
633         (replace_ref): New function.
634         (replace_refs): Likewise.
635         (analyze_candidates_and_replace): Call replace_refs.
636         (execute_strength_reduction): Change base_cand_map to hash table.
638 2012-08-01  Uros Bizjak  <ubizjak@gmail.com>
640         * config/i386/i386.c (ix86_address_subreg_operand): Reject
641         stack pointer.
642         (ix86_print_operand_address): Assert that parts.base and parts.index
643         are non-NULL after call to simplify_subreg.
645 2012-08-01  Richard Guenther  <rguenther@suse.de>
647         * doc/tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming.
649 2012-08-01  Richard Guenther  <rguenther@suse.de>
651         * graphite-clast-to-gimple.c (translate_clast_user): Rename
652         virtual operands.
653         * sese.c (graphite_copy_stmts_from_block): Do not rename virtual
654         operands here.
655         * tree-call-cdce.c (tree_call_cdce): Use
656         mark_virtual_operands_for_renaming.
657         * tree-eh.c (sink_clobbers): Simplify.
658         * tree-flow.h (mark_sym_for_renaming): Remove.
659         (mark_virtual_operands_for_renaming): New function.
660         * tree-if-conv.c (tree_if_conversion): Use
661         mark_virtual_operands_for_renaming.
662         * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
663         * tree-into-ssa.c (mark_sym_for_renaming): Remove.
664         (mark_virtual_operands_for_renaming): New function.
665         * tree-loop-distribution.c (tree_loop_distribution): Use
666         mark_virtual_operands_for_renaming.
667         * tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not
668         update stmts, use mark_virtual_operands_for_renaming.
669         * tree-ssa-tail-merge.c (release_last_vdef): Remove.
670         (replace_block_by): Adjust.
671         (tail_merge_optimize): Use mark_virtual_operands_for_renaming.
672         * tree-tailcall.c (tree_optimize_tail_calls_1): Use
673         mark_virtual_operands_for_renaming.
674         * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
675         * tree-vectorizer.c (vectorize_loops): Likewise.
677 2012-08-01  Richard Guenther  <rguenther@suse.de>
679         * tree-flow.h (struct gimple_df): Remove syms_to_rename member,
680         add ssa_renaming_needed and rename_vops flags.
681         (SYMS_TO_RENAME): Remove.
682         (symbol_marked_for_renaming): Likewise.
683         (mark_virtual_ops_for_renaming): Likewise.
684         * tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename):
685         New globals.
686         (mark_for_renaming, marked_for_renaming): New functions.
687         (symbol_marked_for_renaming): Remove.
688         (dump_currdefs): Adjust.
689         (maybe_replace_use): Likewise.
690         (maybe_replace_use_in_debug_stmt): Likewise.
691         (maybe_register_def): Likewise.
692         (rewrite_update_phi_arguments): Likewise.
693         (rewrite_update_enter_block): Likewise.
694         (fini_ssa_renamer): Clear update SSA status here ...
695         (delete_update_ssa): ... not here.  Free rename set.
696         (prepare_block_for_update): Compute which decls need renaming.
697         (dump_update_ssa): Adjust.
698         (mark_sym_for_renaming): Adjust update SSA status for virtuals.
699         (need_ssa_update_p): Adjust.
700         (insert_updated_phi_nodes_for): Likewise.
701         (update_ssa): Likewise.
702         * tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status
703         for virtual and real operands.
704         (finalize_ssa_uses): Likewise.
705         * tree-ssanames.c (init_ssanames): Adjust.
706         * tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var,
707         execute_update_addresses_taken): Add bitmap to keep track of which
708         candidates are suitable for rewriting and later renaming by SSA update.
709         * matrix-reorg.c (transform_access_sites): Do not rename all defs.
710         * tree-dfa.c (make_rename_temp): Do not mark real operands for
711         renaming.
712         * cgraphunit.c (assemble_thunk): Likewise.
713         * gimplify.c (gimple_regimplify_operands): Likewise.
714         (force_gimple_operand_1): Likewise.
715         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
716         * tree-inline.c (declare_return_variable): Likewise.
717         * tree-parloops.c (separate_decls_in_region_stmt): Do not call
718         mark_virtual_ops_for_renaming.
719         (create_stores_for_reduction): Likewise.
720         (create_loads_and_stores_for_name): Likewise.
721         * tree-predcom.c (mark_virtual_ops_for_renaming): Remove.
722         (initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming.
723         (execute_load_motion): Likewise.
724         (remove_stmt): Likewise.
725         (execute_pred_commoning_chain): Likewise.
726         * tree-sra.c (create_access_replacement): Do not rename real operands.
727         (get_unrenamed_access_replacement): Unify with ...
728         (get_access_replacement): ... this.
729         (get_repl_default_def_ssa_name): Adjust.
730         * tree-ssa-loop-im.c (move_computations_stmt): Manually update
731         virtual SSA form.
732         (rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming.
733         * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
735 2012-07-31  DJ Delorie  <dj@redhat.com>
737         * config/s390/s390.c (s390_option_override): Disable DWARF 3/4
738         extensions for TPF, unless specifically selected.
740 2012-08-01  Alan Modra  <amodra@gmail.com>
742         PR target/54131
743         * config/rs6000/rs6000.c (mem_operand_gpr): Don't limit range
744         of lo_sum offsets.  Comment.  Assert mode at least word size
745         rather than bypassing powerpc64 word offset check.
747 2012-07-31  Bill Schmidt  <wschmidt@linux.ibm.com>
749         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
750         costs for vec_perm and vec_promote_demote down to more natural values.
751         (struct _rs6000_cost_data): New data structure.
752         (rs6000_density_test): New function.
753         (rs6000_init_cost): Change to use rs6000_cost_data.
754         (rs6000_add_stmt_cost): Likewise.
755         (rs6000_finish_cost): Perform density test when vectorizing a loop.
757 2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>
759         * sched-vis.c (print_exp): Handle FMA explicitly.  Simplify handling
760         of RTX_UNARY function-like operations.  Print unknown expression
761         RTX classes as pseudo-functions.
762         (print_pattern): Simplify return pattern printing.
763         (dump_insn_slim): Print the value of notes as a pattern for proper
764         printing of CFA notes.
766 2012-07-31  Dehao Chen  <dehao@google.com>
768         * predict.c (tree_estimate_probability_driver): Normalize the
769         loop when initializing the loop optimizer.
771 2012-07-31  Richard Guenther  <rguenther@suse.de>
773         * tree-flow.h (struct var_ann_d): Remove need_phi_state
774         and current_def members.
775         * tree-into-ssa.c (struct def_blocks_d): Remove var member.
776         (def_blocks): Remove.
777         (struct var_info_d): New.
778         (var_infos): New hashtable.
779         (struct ssa_name_info): Add def_blocks member.
780         (get_ssa_name_ann): Adjust.
781         (get_var_info): New function.
782         (get_phi_state, set_phi_state, get_current_def,
783         set_current_def, get_def_blocks_for, find_def_blocks_for): Adjust.
784         (insert_phi_nodes_compare_def_blocks): Rename to ...
785         (insert_phi_nodes_compare_var_infos): ... this and adjust.
786         (insert_phi_nodes): Adjust.
787         (dump_tree_ssa, dump_tree_ssa_stats): Adjust.
788         (def_blocks_hash, def_blocks_eq, def_blocks_free): Remove.
789         (debug_def_blocks_r): Rename to ...
790         (debug_var_infos_r): ... this and adjust.
791         (var_info_hash): New function.
792         (var_info_eq): Likewise.
793         (rewrite_blocks): Adjust.
794         (init_ssa_renamer): Likewise.
795         (fini_ssa_renamer): Likewise.
796         (delete_update_ssa): Likewise.
797         (update_ssa): Likewise.
798         * tree-ssanames.c (release_dead_ssa_names): Do not clear current defs.
800 2012-07-31  Bill Schmidt  <wschmidt@linux.ibm.com>
802         PR tree-optimization/53773
803         * tree-vectorizer.h (struct _loop_vec_info): Add operands_swapped.
804         (LOOP_VINFO_OPERANDS_SWAPPED): New macro.
805         * tree-vect-loop.c (new_loop_vec_info): Initialize
806         LOOP_VINFO_OPERANDS_SWAPPED field.
807         (destroy_loop_vec_info): Restore canonical form.
808         (vect_is_slp_reduction): Set LOOP_VINFO_OPERANDS_SWAPPED field.
809         (vect_is_simple_reduction_1): Likewise.
811 2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>
813         * sched-vis.c (dump_insn_slim): Print print_rtx_head at the
814         start of each new line.
815         * final.c (final_scan_insn): If the final dump is requested as
816         slim RTL, dump slim RTL to the assembly file also.
818 2012-07-31  Andrey Belevantsev  <abel@ispras.ru>
820         PR target/53975
822         * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
824         Revert
825         2011-08-04  Sergey Grechanik  <mouseentity@ispras.ru>
827         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
828         only if producer writes to the register given by regno.
830 2012-07-31  Nick Clifton  <nickc@redhat.com>
832         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Add
833         support for reporting stack usage.
835         * config/frv/frv.c (QUAD): Fix typo.
836         (frv_expand_prologue): Report stack usage.
838 2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>
840         PR pch/53880
841         * gengtype.c (struct walk_type_data): Add have_this_obj field.
842         (walk_type): For functions that take a this_obj argument and
843         that process fields with a GTY((length)) argument, write the
844         test that write_types_local_process_field will write also at the
845         head of the loop, effectively unswitching the loop.
846         (write_func_for_structure, write_local_func_for_structure): Clear
847         have_this_obj before calling walk_type.
848         (write_local_func_for_structure): Set have_this_obj before walk_type.
849         (write_array): Set have_this_obj for output of local pointer walking
850         functions but not for marker functions.
851         (write_types_local_process_field): Assert have_this_obj is set.
853         * rtl.h (simplify_using_condition): Adjust prototype using bitmap
854         from coretypes.h.
856 2012-07-30  Nathan Froyd  <froydnj@gcc.gnu.org>
859         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
860         * targhooks.c (default_mode_dependent_address_p): Delete code
861         for GO_IF_MODE_DEPENDENT_ADDRESS.
862         * system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison.
863         * doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention.
864         * doc/tm.texi: Regenerate.
865         * config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to...
866         * config/alpha.c (alpha_mode_dependent_address_p): ...here.  New
867         function.
868         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
869         * config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
870         * config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
871         * config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete.
872         * config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
873         * config/vax/vax.c (vax_mode_dependent_address_p): Make static.
874         Take a const_rtx.
875         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
877 2012-07-30  Nathan Froyd  <froydnj@gcc.gnu.org>
879         * expmed.h (NUM_MODE_VECTOR_INT): Define.
880         (struct expmed_op_cheap, struct expmed_op_costs): New structures.
881         (struct target_expmed): Convert x_mul_highpart_cost and
882         x_mul_widen_cost fields to be indexed by integer modes.
883         Convert x_sdiv_pow2_cheap and x_smod_pow2_cheap fields to be
884         of type struct expmed_op_cheap.  Convert other cost fields to be
885         of type struct_expmed_op_costs.
886         (mul_widen_cost_ptr, mul_highpart_cost_ptr): Adjust for new
887         indexing of respective fields.
888         (expmed_op_cheap_ptr): New function.
889         (sdiv_pow2_cheap_ptr, smod_pow2_cheap_ptr): Call it.
890         (expmed_op_cost_ptr): New function.
891         (add_cost_ptr, neg_cost_ptr, shift_cost_ptr, shiftadd_cost_ptr,
892         shiftsub0_cost_ptr, shiftsub1_cost_ptr, mul_cost_ptr,
893         sdiv_cost_ptr, udiv_cost_ptr): Call it.
895 2012-07-30  Sandra Loosemore  <sandra@codesourcery.com>
896             Julian Brown  <julian@codesourcery.com>
898         * doc/invoke.texi (MIPS Options): Document -mno-float.
899         * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Make it know
900         about -mno-float.
902 2012-07-30  Joseph Myers  <joseph@codesourcery.com>
904         * doc/sourcebuild.texi (Subdirectories): Document common subdirectory.
906 2012-07-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
908         PR middle-end/53823
909         * expmed.c (expand_mult): Skip synth_mult for constant double op1 except
910         for special cases.  Don't initialize coeff and is_neg.
912 2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>
913             Richard Earnshaw  <rearnsha@arm.com>
915         * target.def (vector_alignment): New target hook.
916         * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
917         * doc/tm.texi: Regenerate.
918         * targhooks.c (default_vector_alignment): New function.
919         * targhooks.h (default_vector_alignment): Add prototype.
920         * stor-layout.c (layout_type): Use targetm.vector_alignment.
921         * config/arm/arm.c (arm_vector_alignment): New function.
922         (TARGET_VECTOR_ALIGNMENT): Define.
924         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
925         vector type alignment instead of size.
926         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
927         element type size directly instead of computing it from alignment.
928         Fix variable naming and comment.
930 2012-07-30  Kirill Yukhin  <kirill.yukhin@intel.com>
931             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
933         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New.
934         (OPTION_MASK_ISA_RDSEED_UNSET): Likewise.
935         (ix86_handle_option): Handle mrdseed option.
936         * config.gcc (i[34567]86-*-*): Add rdseedintrin.h.
937         (x86_64-*-*): Likewise.
938         * config/i386/prfchwintrin.h: New header.
939         * config/i386/cpuid.h (bit_RDSEED): New.
940         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
941         RDSEED support.
942         * config/i386/i386-c.c: Define __RDSEED__ if needed.
943         * config/i386/i386.c (ix86_target_string): Define -mrdseed option.
944         (PTA_RDSEED): New.
945         (ix86_option_override_internal): Handle new option.
946         (ix86_valid_target_attribute_inner_p): Add OPT_mrdseed.
947         (ix86_builtins): Add enum entries for RDSEED* builtins.
948         (ix86_init_mmx_sse_builtins): Define new builtins.
949         (ix86_expand_builtin): Expand RDSEED* builtins.
950         * config/i386/i386.h (TARGET_RDSEED): New.
951         * config/i386/i386.md (rdseed<mode>_1): New.
952         * config/i386/i386.opt (mrdseed): New.
953         * config/i386/x86intrin.h: Include rdseedintrin.h.
955 2012-07-30  Richard Guenther  <rguenther@suse.de>
957         * tree-into-ssa.c (mark_def_sites): Also process virtual operands.
958         (rewrite_stmt): Likewise.
959         (rewrite_enter_block): Likewise.
960         (pass_build_ssa): Do not update virtual SSA form during TODO.
961         (mark_symbol_for_renaming): Do nothing if we are not in SSA form.
962         * lto-streamer-in.c (lto_read_body): Set in_ssa_p earlier.
964 2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>
966         PR target/39423
967         * config/gcc/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New
968         insns.
970 2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>
972         PR target/51244
973         * config/sh/sh.md (mov_neg_si_t): Move to Scc instructions section.
974         Use t_reg_operand predicate.  Add split for negated case.
975         (ashrsi2_31): Pass get_t_reg_rtx to gen_mov_neg_si_t.
976         * config/sh/sh.c (expand_ashiftrt): Likewise.
978 2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>
980         PR target/54089
981         * config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead
982         of trying to emit ashlsi3_n.
984 2012-07-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
985             Steven Bosscher  <steven@gcc.gnu.org>
987         * gengtype.c (adjust_field_type): Diagnose duplicate "length"
988         option applications and option being applied to arrays of atomic types.
989         (walk_type): Allow "atomic" option on strings too.
990         * dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
991         for the array field.
992         * vec.h: Describe the atomic object "A" type of the macros in
993         the header comment.
994         (VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
995         * emit-rtl.c (locations_locators_vals): use the atomic object vector.
996         * doc/gty.texi: Clarify that GTY option "length" is only for
997         arrays of non-atomic objects.  Fix typo in the description of the
998         "atomic" option.
1000 2012-07-27  Uros Bizjak  <ubizjak@gmail.com>
1002         * config/i386/i386.c (ix86_avoid_lea_for_addr): Handle
1003         zero-extended addresses.  Return false if the address has less
1004         than two components.
1005         (ix86_split_lea_for_addr): Unconditionally convert target and
1006         all address operands to requested mode.
1007         * config/i386/i386.md (*lea<mode>): Recover operands from curr_insn.
1008         Pass SImode to ix86_split_lea_for_addr when splitting zero-extended
1009         address.
1010         (zero-extended add splitter): New splitter to conditionally split
1011         non-destructive adds.
1012         (*zero_extendsidi2_rex64): Conditionally emit leal instead of movl.
1014 2012-07-28  Alan Modra  <amodra@gmail.com>
1016         PR target/54093
1017         * config/rs6000/rs6000.c (rs6000_secondary_reload): Limit 32-bit
1018         multi-gpr reload to cases where predicate passes.  Do the same for
1019         64-bit multi-gpr reload.
1021 2012-07-27  Nathan Froyd  <froydnj@gcc.gnu.org>
1023         * expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
1024         smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
1025         shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
1026         sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
1027         macro definitions and re-purpose as inline functions.
1028         (alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
1029         set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
1030         zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
1031         neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
1032         shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
1033         set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
1034         mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
1035         udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
1036         set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
1037         New functions.
1038         (convert_cost_ptr): New function, split out from...
1039         (set_convert_cost, convert_cost): ...here.
1040         * expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
1041         * gimple-ssa-strength-reduction.c: Likewise.
1043 2012-07-20  Ryan Mansfield  <rmansfield@qnx.com>
1045         * gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
1046         diagnostic_initialize.
1048 2012-07-27  Oleg Endo  <olegendo@gcc.gnu.org>
1050         PR target/54089
1051         * config/sh/sh.c (shiftcosts): Remove case where first operand
1052         is a const_int.  Move COSTS_N_INSNS usage into caller ...
1053         (sh_rtx_costs) ... here.  Return false when shiftcosts cannot be
1054         calculated instead of MAX_COST.
1056 2012-07-27  Richard Guenther  <rguenther@suse.de>
1058         * tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained
1059         check whether SSA form is not up-to-date.
1060         * tree-flow.h (name_mappings_registered_p): Remove.
1061         * tree-into-ssa.c (struct repl_map_d): Remove.
1062         (repl_tbl): Likewise.
1063         (struct ssa_name_info): Add repl_set member.
1064         (update_ssa_obstack): New static global.
1065         (get_ssa_name_ann): Initialize repl_set.
1066         (clear_ssa_name_info): Assert age did not wrap.
1067         (repl_map_hash, repl_map_eq, repl_map_free): Remove.
1068         (names_replaced_by): Adjust.
1069         (add_to_repl_tbl): Likewise.
1070         (dump_tree_ssa_stats): Likewise.
1071         (init_update_ssa): Initialize update_ssa_obstack.
1072         (delete_update_ssa): Free update_ssa_obstack.
1073         (name_mappings_registered_p): Remove.
1074         (update_ssa): Adjust.
1076 2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>
1078         * config/rs6000/constraints.md: Delete "q" constraint.
1079         * config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat):
1080         Delete the "q" alternative.
1081         * config/rs6000/predicates.md (gpc_reg_operand): Adjust.
1082         * config/rs6000/rs6000.c (rs6000_debug_reg_global,
1083         rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number):
1084         Adjust to MQ_REGNO removal.
1085         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust
1086         comment.
1087         (REG_ALLOC_ORDER): Adjust comment.  Remove MQ from alloc order.
1088         (enum reg_class): Adjust comment.  Delete MQ_REGS.
1089         (REG_CLASS_CONTENTS): Adjust.
1090         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment.
1091         * config/rs6000/rs6000.md: Delete MQ_REGNO.
1092         (movsi_internal1, movsi_internal1_single, movhi_internal,
1093         movqi_internal, movcc_internal1, movsf_hardfloat,
1094         movsf_softfloat): Delete the "q" alternative.
1095         (ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
1096         ctr<mode>_internal6): Delete "q" constraint.
1098 2012-07-27  Richard Guenther  <rguenther@suse.de>
1100         * tree-into-ssa.c (def_blocks_p): New typedef.
1101         (insert_phi_nodes_compare_def_blocks): New function.
1102         (insert_phi_nodes): Do not walk over referenced vars, instead
1103         walk over recorded def_blocks, record relevant ones and sort
1104         them to avoid repeated hashtable lookups.
1106 2012-07-27  Richard Guenther  <rguenther@suse.de>
1108         * doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio):
1109         Remove param documentation.
1110         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS,
1111         PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove.
1112         * tree-flow.h (mark_set_for_renaming): Remove.
1113         * tree-into-ssa.c (struct update_ssa_stats_d): Remove.
1114         (add_new_name_mapping): Remove bookkeeping code.
1115         (dump_update_ssa): Remove stats dumping code.
1116         (init_update_ssa): Remove stats allocation code.
1117         (delete_update_ssa): Remove stats freeing code.
1118         (mark_set_for_renaming): Remove.
1119         (switch_virtuals_to_full_rewrite_p): Likewise.
1120         (switch_virtuals_to_full_rewrite): Likewise.
1121         (update_ssa): Do not call switch_virtuals_to_full_rewrite.
1123 2012-07-27  Marek Polacek  <polacek@redhat.com>
1125         * cgraphunit.c: Rename varpool_finalize_variable to
1126         varpool_finalize_decl in a comment.
1128 2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>
1130         * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
1131         Delete code for -mno-power, -mpower, and -mpower2.
1132         * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
1133         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1134         with -maix64.
1135         (ASM_CPU_SPEC): Delete support for POWER and POWER2.
1136         * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
1137         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1138         with -maix64.
1139         (ASM_CPU_SPEC): Delete support for POWER and POWER2.
1140         * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
1141         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1142         with -maix64.
1143         (TARGET_POWER): Delete.
1144         * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
1145         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1146         with -maix64.
1147         (TARGET_POWER): Delete.
1148         * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
1149         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1150         with -maix64.
1151         (TARGET_POWER): Delete.
1152         * config/rs6000/darwin.h (TARGET_POWER): Delete.
1153         * config/rs6000/driver-rs6000.c (struct asm_names): Delete
1154         support for -mpower, -mpower2, and -mno-power.
1155         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
1156         Likewise.
1157         (rs6000_cpu_cpp_builtins): Likewise.
1158         * config/rs6000/rs6000-cpus.def: Likewise.
1159         * config/rs6000/rs6000-tables.opt: Regenerate.
1160         * config/rs6000/rs6000.c (POWER_MASKS): Delete.
1161         (rs6000_option_override_internal): Adjust.
1162         (rs6000_conditional_register_usage): Adjust.
1163         (rs6000_emit_move): Adjust.
1164         (rs6000_common_init_builtins): Adjust.
1165         (rs6000_init_libfuncs): Adjust.
1166         (rs6000_output_function_prologue): Adjust.
1167         (rs6000_adjust_cost): Adjust.
1168         (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
1169         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
1170         POWER and POWER2.
1171         (TARGET_DEFAULT): Adjust.
1172         (PROCESSOR_POWER): Delete.
1173         (SHIFT_COUNT_TRUNCATED): Adjust.
1174         * config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
1175         (extendqisi2_power): Delete.
1176         (extendqisi2_no_power): Adjust.
1177         (extendqihi2, extendqihi2_power, extendqihi2_no_power):
1178         Likewise.
1179         (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
1180         (anonymous doz insn patterns): Delete.
1181         (abssi2): Adjust.
1182         (abssi2_power): Delete.
1183         (abssi2_nopower): Adjust.
1184         (nabs_power, nabs_nopower): Likewise.
1185         (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
1186         Likewise.  Delete anonymous post-reload splitter.
1187         (mulsi3_no_mq_internal1): rename to...
1188         (mulsi3_internal1): New define_insn.
1189         (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
1190         Likewise.
1191         (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
1192         udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
1193         udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
1194         (mulh_call, mull_call, divss_call, divus_call, quoss_call,
1195         quous_call): Likewise.
1196         (maskir_internal1, maskir_internal2, maskir_internal3,
1197         maskir_internal4, maskir_internal5, maskir_internal6,
1198         maskir_internal7, maskir_internal8): Delete.
1199         (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
1200         (anonymous sl insn patterns): Delete.
1201         (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
1202         (lshrsi3_64): Adjust.
1203         (anonymous sr insn patterns): Delete.
1204         (anonymous rrib insn patterns): Delete.
1205         (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
1206         (anonymous sra insn patterns): Delete.
1207         (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
1208         (fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
1209         fctiwz_<mode>): Adjust.
1210         (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
1211         umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
1212         smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
1213         umulsi3_highpart_no_mq): Adjust.
1214         (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
1215         (ashrdi3_no_power, ashldi3, ashldi3_internal1,
1216         lshrdi3_internal1): Adjust.
1217         (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
1218         (movti_power): Delete.
1219         (movti_string): Adjust.
1220         (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
1221         (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
1222         stmsi4_power, stmsi3_power): Delete.
1223         (anonymous movmemsi insn patterns): Adjust.
1224         (lfq_power2, stfq_power2): Delete.
1225         (eq<mode>, eq<mode>_compare): Adjust.
1226         (eqsi_power): Delete.
1227         (ne0si): Adjust.
1228         (anonymous le, lt, ge, gt insn patterns): Delete.
1229         * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
1230         * config/rs6000/sysv4.h (TARGET_POWER): Delete.
1231         * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1232         MULTILIB_MATCHES): Adjust.
1233         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
1234         -mpower, -mno-power, -mpower2, -mno-power2 documentation.
1235         Delete -mcpu=power and -mcpu=power2 documentation.
1237 2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>
1239         * config/rs6000/601.md: New file.
1240         * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
1241         RIOS CPUs.
1242         * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
1243         * config/rs6000/driver-rs6000.c (detect_processor_aix,
1244         struct asm_names): Likewise.
1245         * config/rs6000/rios1.md: Delete file.
1246         * config/rs6000/rios2.md: Delete file.
1247         * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
1248         CPUs.
1249         * config/rs6000/rs6000-opts.h (enum processor_type): Delete
1250         PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
1251         * config/rs6000/rs6000-tables.opt: Regenerated.
1252         * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
1253         Delete.
1254         (rs6000_option_override_internal): Delete support for RIOS CPUs.
1255         (rs6000_conditional_register_usage): Adjust comment.
1256         (rs6000_issue_rate):Delete support for RIOS CPUs.
1257         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
1258         RIOS CPUs.
1259         (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
1260         (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
1261         * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
1262         and rios2.
1263         (include "rios1.md", include "rios2.md"): Delete.
1264         (include "601.md"): New.
1265         * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
1266         PROCESSOR_PPC603.
1267         * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
1268         for RIOS CPUs.
1269         * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
1270         rios2.md .  Add 601.md .
1272 2012-07-26  Richard Henderson  <rth@redhat.com>
1274         * doc/extend.texi (attribute): Document hot/cold for labels.
1275         * predict.c (tree_estimate_probability_bb): Handle hot/cold
1276         attributes on user labels.
1277         * predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New.
1279 2012-07-26  Andrew Jenner  <andrew@codesourcery.com>
1280             Sandra Loosemore  <sandra@codesourcery.com>
1282         * cse.c (find_comparison_args): Check for cycles of any length.
1284 2012-07-26  Nick Clifton  <nickc@redhat.com>
1286         * config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete.
1287         (mn10300_get_live_callee_saved_regs): If requested return a count
1288         of the number of bytes in the mask.
1289         (mn10300_expand_prologue): Add argument to invocation of
1290         mn10300_get_live_callee_regs.
1291         (mn10300_expand_epilogue): Compute reg_save_bytes by calling
1292         mn10300_get_live_callee_saved_regs.
1293         (mn10300_initial_offset): Likewise.
1294         * config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs):
1295         Update prototype.
1296         * config/mn10300/mn10300.md (return_ret): Add argument to
1297         invocation of mn10300_get_live_callee_saved_regs.
1299 2012-07-26  Steven Bosscher  <steven@gcc.gnu.org>
1301         PR regression/54084
1302         * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
1303         pointer difference check.
1305 2012-07-26  Bill Schmidt  <wschmidt@linux.ibm.com>
1307         * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
1308         (mbc_entry_eq): Likewise.
1309         (mult_costs): Likewise.
1310         (cost_tables_exist): Likewise.
1311         (initialize_costs): Likewise.
1312         (finalize_costs): Likewise.
1313         (tree_ssa_iv_optimize_init): Remove call to initialize_costs.
1314         (add_regs_cost): Remove.
1315         (multiply_regs_cost): Likewise.
1316         (add_const_cost): Likewise.
1317         (extend_or_trunc_reg_cost): Likewise.
1318         (negate_reg_cost): Likewise.
1319         (struct mbc_entry): Likewise.
1320         (multiply_by_const_cost): Likewise.
1321         (get_address_cost): Change add_regs_cost calls to add_cost lookups;
1322         change multiply_by_const_cost to mult_by_coeff_cost.
1323         (force_expr_to_var_cost): Likewise.
1324         (difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost.
1325         (get_computation_cost_at): Change add_regs_cost calls to add_cost
1326         lookups; change multiply_by_const_cost to mult_by_coeff_cost.
1327         (determine_iv_cost): Change add_regs_cost calls to add_cost lookups.
1328         (tree_ssa_iv_optimize_finalize): Remove call to finalize_costs.
1329         * tree-ssa-address.c (expmed.h): New #include.
1330         (most_expensive_mult_to_index): Change multiply_by_const_cost to
1331         mult_by_coeff_cost.
1332         * gimple-ssa-strength-reduction.c (expmed.h): New #include.
1333         (stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost,
1334         neg_cost, and convert_cost instead of IVOPTS interfaces.
1335         (execute_strength_reduction): Remove calls to initialize_costs and
1336         finalize_costs.
1337         * expmed.c (struct init_expmed_rtl): Add convert rtx_def.
1338         (init_expmed_one_mode): Initialize convert rtx_def; initialize
1339         x_convert_cost for related modes.
1340         (mult_by_coeff_cost): New function.
1341         * expmed.h (NUM_MODE_INT): New #define.
1342         (struct target_expmed): Add x_convert_cost matrix.
1343         (set_convert_cost): New inline function.
1344         (convert_cost): Likewise.
1345         (mult_by_coeff_cost): New extern decl.
1346         * tree-flow.h (initialize_costs): Remove decl.
1347         (finalize_costs): Likewise.
1348         (multiply_by_const_cost): Likewise.
1349         (add_regs_cost): Likewise.
1350         (multiply_regs_cost): Likewise.
1351         (add_const_cost): Likewise.
1352         (extend_or_trunc_reg_cost): Likewise.
1353         (negate_reg_cost): Likewise.
1354         * Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies.
1355         (tree-ssa-address.o): Update dependencies.
1357 2012-07-26  Steven Bosscher  <steven@gcc.gnu.org>
1359         * bitmap.h: Add explanation of sparse set as linked-list bitmap.
1360         * sbitmap.h: Add explanation about non-sparse sets as simple bitmap.
1361         (TEST_BIT): Make a static inline function for stronger type checking.
1362         (SET_BIT): Don't handle sbitmaps with popcount.
1363         (RESET_BIT): Likewise.
1364         (SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount.
1365         (RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount.
1366         * ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and
1367         RESET_BIT_WITH_POPCOUNT on wordmask bitmaps.
1368         (ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into,
1369         ebitmap_and_compl_into, ebitmap_and_compl): Likewise.
1370         * sparseset.h: Add explanation of sparse set representation.
1372 2012-07-26  Richard Guenther  <rguenther@suse.de>
1374         PR tree-optimization/54098
1375         * tree-vrp.c (vrp_visit_phi_node): Iterate once more if the
1376         original range was UNDEFINED.
1378 2012-07-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1380         * config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and
1381         vld1Q_dupu64 tests.
1383 2012-07-26  Oleg Endo  <olegendo@gcc.gnu.org>
1385         PR target/51244
1386         * config/sh/sh.opt (mzdcbranch): New option.
1387         * doc/invoke.texi: Document it.
1388         * config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition
1389         instead of TARGET_HARD_SH4.
1390         * config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default
1391         for TARGET_HARD_SH4.
1393 2012-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
1395         PR target/54089
1396         * config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
1397         case.
1398         (p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
1399         * config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
1400         from expander.  Do not emit shift insn for not-SHMEDIA case.
1401         (ashlsi3_std): Replace with ...
1402         (ashlsi3_k, ashlsi3_d): ... these new insns.
1403         * config/sh/sh.c (gen_ashift): Make static.  Add sanity checks.
1404         Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
1405         (gen_ashift_hi): Make static.
1406         * config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
1407         declaration.
1409 2012-07-25  Bharathi Seshadri  <bseshadr@cisco.com>
1410             Jim Wilson  <jimwilso@cisco.com>
1412         * config/arm/bpabi.h (BE8_LINK_SPEC): Set according to
1413         TARGET_BIG_ENDIAN_DEFAULT.
1415 2012-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1417         * gimple-low.c (lower_try_catch): New function.
1418         (lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH.
1419         <GIMPLE_CATCH>: Delete.
1420         <GIMPLE_EH_FILTER>: Likewise.
1422 2012-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1424         * expr.c (expand_expr_real_1): Do not expand operand #1 and #2
1425         of BIT_FIELD_REF for ignored results.
1426         * fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
1427         CONSTRUCTOR has vector type before using vector accessors on it.
1428         * gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
1429         #2 of BIT_FIELD_REF.
1430         (gimplify_expr) <BIT_FIELD_REF>: Likewise.
1431         * tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
1432         not process operand #1 and #2.
1433         (convert_local_reference_op): Likewise.
1434         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
1435         breaks throughout.
1436         <BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
1437         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
1438         operand #1 and #2.
1439         (UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
1440         (build6_stat): Delete.
1441         * tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
1443 2012-07-25 Marc Glisse <marc.glisse@inria.fr>
1445         PR tree-optimization/30318
1446         * tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
1447         Handle __int128.
1448         [MINUS_EXPR]: Merge with PLUS_EXPR.
1450 2012-07-25  Sandra Loosemore  <sandra@codesourcery.com>
1451             Paul Brook  <paul@codesourcery.com>
1453         PR target/53633
1454         * target.def (warn_func_return): New hook.
1455         * doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
1456         * doc/tm.texi: Regenerate.
1457         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1458         naked_functions.
1459         * ipa-pure-const.c (warn_function_noreturn): Check
1460         targetm.warn_func_return.
1461         * tree-cfg.c (execute_warn_function_return): Likewise.
1462         * config/spu/spu.c (spu_warn_func_return): New.
1463         (TARGET_WARN_FUNC_RETURN): Define.
1464         * config/rx/rx.c (rx_warn_func_return): New.
1465         (TARGET_WARN_FUNC_RETURN): Define.
1466         * config/avr/avr.c (avr_warn_func_return): New.
1467         (TARGET_WARN_FUNC_RETURN): Define.
1468         * config/arm/arm.c (arm_warn_func_return): New.
1469         (TARGET_WARN_FUNC_RETURN): Define.
1470         * config/mcore/mcore.c (mcore_warn_func_return): New.
1471         (TARGET_WARN_FUNC_RETURN): Define.
1472         (saved_warn_return_type, saved_warn_return_type_count): Remove.
1473         (mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.
1475 2012-07-25  Siddhesh Poyarekar  <siddhesh@redhat.com>
1477         * final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New
1478         function to implement assembler dialects.
1479         (output_asm_insn): Use do_assembler_dialects.
1480         (asm_fprintf): Likewise.
1482 2012-07-25  Richard Henderson  <rth@redhat.com>
1484         PR bootstrap/54092
1485         * libfuncs.h: Don't include optabs.h.
1486         (struct libfunc_entry): Use "int" for op, mode1, mode2 members.
1487         * optabs.c (hash_libfunc): Don't cast members to int.
1488         * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.
1490 2012-07-25  Dodji Seketeli  <dodji@redhat.com>
1492         * basic-block.c: Fix typo in comment.
1494 2012-07-25  Kirill Yukhin  <kirill.yukhin@intel.com>
1495             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1497         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
1498         (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
1499         (ix86_handle_option): Handle mprfchw option.
1500         * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
1501         (x86_64-*-*): Likewise.
1502         * config/i386/prfchwintrin.h: New header.
1503         * config/i386/cpuid.h (bit_PRFCHW): New.
1504         (bit_BMI): Formatting fix.
1505         (bit_HLE): Likewise.
1506         (bit_RTM): Likewise.
1507         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1508         PREFETCHW support.
1509         * config/i386/i386-c.c: Define __PRFCHW__ if needed.
1510         * config/i386/i386.c (ix86_target_string): Define
1511         -mprfchw option. Formatting fixes.
1512         (PTA_HLE): Formatting fix.
1513         (PTA_PRFCHW): New.
1514         (ix86_option_override_internal): Handle new option.
1515         (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
1516         * config/i386/i386.h (TARGET_PRFCHW): New.
1517         * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
1518         * config/i386/i386.opt (mprfchw): New.
1519         * config/i386/mm3dnow.h: Move _m_prefetchw from here to prfchwintrin.h.
1520         * config/i386/x86intrin.h: Include prfchwintrin.h.
1522 2012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>
1524         * config/i386/i386.md (stack_protect_set): Disable the pattern
1525         for Android since Android libc (bionic) does not provide random
1526         value for stack protection guard at gs:0x14. Guard value
1527         will be provided from external symbol (default implementation).
1528         (stack_protect_set_<mode>): Likewise.
1529         (stack_protect_test): Likewise.
1530         (stack_protect_test_<mode>): Likewise.
1531         * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
1532         not have Bionic by default
1533         * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
1534         Macro OPTION_BIONIC is defined in this file and provides Bionic
1535         accessibility status
1537 2012-07-25  Steven Bosscher  <steven@gcc.gnu.org>
1539         * gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
1541 2012-07-25  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1543         btver2 Enablement
1544         * config.gcc (i[34567]86-*-linux* | ...): Add btver2.
1545         (case ${target}): Add btver2.
1546         * config/i386/driver-i386.c (host_detect_local_cpu): Let
1547         -march=native recognize btver2 processors.
1548         * config/i386/i386-c.c (ix86_target_macros_internal): Add
1549         btver2 def_and_undef
1550         * config/i386/i386.c (struct processor_costs btver2_cost): New
1551         btver2 cost table.
1552         (m_BTVER2): New definition.
1553         (m_AMD_MULTIPLE): Includes m_BTVER2.
1554         (initial_ix86_tune_features): Add btver2 tune.
1555         (processor_target_table): Add btver2 entry.
1556         (static const char *const cpu_names): Add btver2 entry.
1557         (software_prefetching_beneficial_p): Add btver2.
1558         (ix86_option_override_internal): Add btver2 instruction sets.
1559         (ix86_issue_rate): Add btver2.
1560         (ix86_adjust_cost): Add btver2.
1561         * config/i386/i386.h (TARGET_BTVER2): New definition.
1562         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver2.
1563         (enum processor_type): Add PROCESSOR_BTVER2.
1564         * config/i386/i386.md (define_attr "cpu"): Add btver2.
1566 2012-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>
1568         * doc/tm.texi: Regenerate.
1569         * targhooks.c (default_init_cost): Add prologue and epilogue costs.
1570         (default_add_stmt_cost): Likewise; also handle NULL stmt_info.
1571         (default_finish_cost): Add prologue and epilogue costs.
1572         * targhooks.h (default_add_stmt_cost): Change parameter list.
1573         (default_finish_cost): Likewise.
1574         * target.def (init_cost): Change documentation string.
1575         (add_stmt_cost): Change documentation string and parameter list.
1576         (finish_cost): Likewise.
1577         * target.h (vect_cost_model_location): New enum.
1578         * tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
1579         (struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
1580         to body_cost_vec.
1581         (SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
1582         (SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
1583         (SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
1584         (struct _vect_peel_extended_info): Rename stmt_cost_vec to
1585         body_cost_vec.
1586         (struct _stmt_vec_info): Remove cost substruct.
1587         (STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
1588         (stmt_vinfo_set_outside_of_loop_cost): Remove.
1589         (builtin_vectorization_cost): New function.
1590         (vect_get_stmt_cost): Change to use builtin_vectorization_cost.
1591         (add_stmt_cost): Change parameter list.
1592         (finish_cost): Likewise.
1593         (vect_model_simple_cost): Likewise.
1594         (vect_model_store_cost): Likewise.
1595         (vect_model_load_cost): Likewise.
1596         (record_stmt_cost): Likewise.
1597         (vect_get_load_cost): Likewise.
1598         (vect_get_known_peeling_cost): Likewise.
1599         * tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
1600         list; call record_stmt_cost for prologue and epilogue costs.
1601         (vect_estimate_min_profitable_iters): Call add_stmt_cost for
1602         prologue and epilogue costs; remove computation of vec_outside_cost;
1603         return vec_prologue_cost and vec_epilogue_cost from finish_cost.
1604         (vect_model_reduction_cost): Revise call to add_stmt_cost for body
1605         costs; call add_stmt_cost for prologue and epilogue costs.
1606         (vect_model_induction_cost): Revise call to add_stmt_cost for body
1607         costs; call add_stmt_cost for prologue costs.
1608         * tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
1609         list for function and arguments for calls to vect_get_load_cost and
1610         vect_get_store_cost.
1611         (vect_peeling_hash_get_lowest_cost): Change argument list for calls to
1612         vect_get_data_access_cost and vect_get_known_peeling_cost; use
1613         temporary vectors prologue_cost_vec and epilogue_cost_vec for the
1614         latter call and discard their results; rename stmt_cost_vec to
1615         body_cost_vec; correct possible storage leak for body_cost_vec.
1616         (vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
1617         body_cost_vec.
1618         (vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
1619         body_cost_vec; add extra dummy parameter on calls to
1620         vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
1621         argument list on call to add_stmt_cost.
1622         * tree-vect-stmts.c (record_stmt_cost): Change parameter list;
1623         rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
1624         builtin_vectorization_cost; add "where" parameter on call to
1625         add_stmt_cost.
1626         (vect_model_simple_cost): Change parameter list; call record_stmt_cost
1627         for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
1628         rename stmt_cost_vec to body_cost_vec.
1629         (vect_model_promotion_demotion_cost): Add vect_body argument to call
1630         to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
1631         to stmt_vinfo_set_outside_of_loop_cost.
1632         (vect_model_store_cost): Change parameter list; call record_stmt_cost
1633         for prologue costs; add vect_body argument to call to record_stmt_cost;
1634         rename stmt_cost_vec to body_cost_vec; remove call to
1635         stmt_vinfo_set_outside_of_loop_cost.
1636         (vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
1637         vect_body argument to calls to record_stmt_cost.
1638         (vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
1639         body_cost_vec; add vect_body argument to calls to record_stmt_cost;
1640         remove call to stmt_vinfo_set_outside_of_loop_cost.
1641         (vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
1642         body_cost_vec; add vect_body argument to calls to record_stmt_cost;
1643         call record_stmt_cost for prologue costs.
1644         (vectorizable_store): Change argument list for call to
1645         vect_model_store_cost.
1646         (vectorizable_load): Change argument list for call to
1647         vect_model_load_cost.
1648         (new_stmt_vec_info): Remove assignment to
1649         STMT_VINFO_OUTSIDE_OF_LOOP_COST.
1650         * config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
1651         (spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
1652         (spu_finish_cost): Add prologue and epilogue costs.
1653         * config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
1654         (i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
1655         (i386_finish_cost): Add prologue and epilogue costs.
1656         * config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
1657         costs.
1658         (rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
1659         (rs6000_finish_cost): Add prologue and epilogue costs.
1660         * tree-vect-slp.c (vect_free_slp_instance): Rename
1661         SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
1662         (vect_create_new_slp_node): Remove assignment to
1663         SLP_TREE_OUTSIDE_OF_LOOP_COST.
1664         (vect_get_and_check_slp_defs): Change parameter list; change argument
1665         lists to calls to vect_model_store_cost and vect_model_simple_cost.
1666         (vect_build_slp_tree): Change parameter list; change argument lists
1667         to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
1668         recursive self-calls; remove setting of outside_cost from
1669         SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
1670         record_stmt_cost.
1671         (vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
1672         rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
1673         remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
1674         prologue costs.
1675         (vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
1676         body_cost_vec; handle null ci->stmt; add vect_body argument to call
1677         to add_stmt_cost; simplify calls to targetm.vectorize.
1678         builtin_vectorization_cost; return vec_prologue_cost and
1679         vec_epilogue_cost from finish_cost.
1680         (vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
1681         body_cost_vec; add vect_body argument to call to add_stmt_cost.
1683 2012-07-24  Richard Henderson  <rth@redhat.com>
1685         * system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison.
1686         * config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1687         * config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1688         * config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1689         * config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove
1690         comment reference.
1691         * config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1692         * config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New.
1693         (fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX.
1694         * config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1695         * config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New.
1696         * doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1697         * doc/tm.texi: Rebuild.
1699 2012-07-24  Richard Henderson  <rth@redhat.com>
1701         * optabs.def: New file.
1702         * Makefile.in (OPTABS_H): Add insn-opinit.h.
1703         (MOSTLYCLEANFILES): Likewise.
1704         (insn-opinit.o): Remove reload.h
1705         (simple_rtl_generated_c): Remove insn-opinit.c.
1706         (s-opinit): New rule.
1707         (build/genopinit.o): Add optabs.def.
1708         * genopinit.c (rtx_upname): New.
1709         (optabs): Extract to optabs.def
1710         (enum optab_tag, struct optab_def_d, optabs): New.
1711         (struct pattern_d, patterns): New.
1712         (match_pattern): Split out from ...
1713         (gen_insn): ... here.  Push matches on patterns vec.
1714         (pattern_cmp, optab_kind_cmp, optab_rcode_cmp): New.
1715         (header_file_name, source_file_name, handle_arg): New.
1716         (open_outfile): New.
1717         (main): Sort and emit new tables.  Generate lookup_handler,
1718         raw_optab_handler, swap_optab_enable.
1719         * libfuncs.h (libfunc_entry): Change "size_t optab" to "optab op".
1720         * optabs.c (code_to_optab_): Remove.
1721         (hash_libfunc): Update for optab name change.
1722         (eq_libfunc): Likewise.
1723         (convert_optab_libfunc): Update computation of optab member;
1724         use the new convlib_def table.
1725         (optab_libfunc): Similarly.
1726         (set_optab_libfunc, set_conv_libfunc): Likewise.
1727         (sign_expand_binop): Use swap_optab_enable instead of fake optabs.
1728         (init_insn_codes, init_optab, init_optabv, init_convert_optab): Remove.
1729         (init_optabs): Don't call them; export the data to optabs.def.
1730         (gen_int_libfunc, gen_fp_libfunc): Export non-static.
1731         (gen_fixed_libfunc, gen_signed_fixed_libfunc): Likewise.
1732         (gen_unsigned_fixed_libfunc, gen_int_fp_libfunc): Likewise.
1733         (gen_intv_fp_libfunc, gen_int_fp_fixed_libfunc): Likewise.
1734         (gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc): Likewise.
1735         (gen_int_signed_fixed_libfunc): Likewise.
1736         (gen_int_unsigned_fixed_libfunc): Likewise.
1737         (gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc): Likewise.
1738         (gen_ufloat_conv_libfunc): Likewise.
1739         (gen_int_to_fp_nondecimal_conv_libfunc): Likewise.
1740         (gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
1741         (gen_trunc_conv_libfunc, gen_extend_conv_libfunc): Likewise.
1742         (gen_fract_conv_libfunc, gen_fractuns_conv_libfunc): Likewise.
1743         (gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): Likewise.
1744         (debug_optab_libfuncs): Update for optab representation change.
1745         * optabs.h: Include insn-opinit.h.
1746         (optab, convert_optab, direct_optab): New typedefs.
1747         (struct optab_handlers, struct widening_optab_handlers): Remove.
1748         (struct optab_libcall_d): Rename from optab_d; remove code_,
1749         handlers, widening members.
1750         (struct convert_optab_libcall_d): Rename from convert_optab_d;
1751         remove code_ and handlers members.
1752         (enum optab_index, enum convert_optab_index): Remove.
1753         (enum direct_optab_index): Remove.
1754         (code_to_optab_): Fix array range.
1755         (optab_to_code): Covert to inline function.
1756         (optab_to_code_, convlib_def, normlib_def): Declare.
1757         (raw_optab_handler, swap_optab_enable): Declare.
1758         (unknown_optab): Remove; export to optabs.def
1759         (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
1760         usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
1761         ssashl_optab, usashl_optab, add_optab, sub_optab, smul_optab,
1762         addv_optab, subv_optab, smul_highpart_optab, umul_highpart_optab,
1763         smul_widen_optab, umul_widen_optab, usmul_widen_optab,
1764         smadd_widen_optab, umadd_widen_optab, ssmadd_widen_optab,
1765         usmadd_widen_optab, smsub_widen_optab, umsub_widen_optab,
1766         ssmsub_widen_optab, usmsub_widen_optab, sdiv_optab, smulv_optab,
1767         sdivv_optab, sdivmod_optab, udiv_optab, udivmod_optab, smod_optab,
1768         umod_optab, fmod_optab, remainder_optab, ftrunc_optab, and_optab,
1769         ior_optab, xor_optab, ashl_optab, lshr_optab, ashr_optab, rotl_optab,
1770         rotr_optab, vashl_optab, vlshr_optab, vashr_optab, vrotl_optab,
1771         vrotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, pow_optab,
1772         atan2_optab, fma_optab, fms_optab, fnma_optab, fnms_optab, mov_optab,
1773         movstrict_optab, movmisalign_optab, storent_optab, neg_optab,
1774         negv_optab, abs_optab, absv_optab, one_cmpl_optab, bswap_optab,
1775         ffs_optab, clz_optab, ctz_optab, clrsb_optab, popcount_optab,
1776         parity_optab, sqrt_optab, sincos_optab, sin_optab, asin_optab,
1777         cos_optab, acos_optab, exp_optab, exp10_optab, exp2_optab, expm1_optab,
1778         ldexp_optab, scalb_optab, significand_optab, logb_optab, ilogb_optab,
1779         log_optab, log10_optab, log2_optab, log1p_optab, floor_optab,
1780         ceil_optab, btrunc_optab, round_optab, nearbyint_optab, rint_optab,
1781         tan_optab, atan_optab, copysign_optab, signbit_optab, isinf_optab,
1782         cmp_optab, ucmp_optab, eq_optab, ne_optab, gt_optab, ge_optab,
1783         lt_optab, le_optab, unord_optab, strlen_optab, cbranch_optab,
1784         cmov_optab, cstore_optab, ctrap_optab, push_optab, addcc_optab,
1785         reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1786         reduc_splus_optab, reduc_uplus_optab, ssum_widen_optab,
1787         usum_widen_optab, sdot_prod_optab, udot_prod_optab, vec_set_optab,
1788         vec_extract_optab, vec_init_optab, vec_shl_optab, vec_shr_optab,
1789         vec_realign_load_optab, vec_widen_umult_hi_optab,
1790         vec_widen_umult_lo_optab, vec_widen_smult_hi_optab,
1791         vec_widen_smult_lo_optab, vec_widen_umult_even_optab,
1792         vec_widen_umult_odd_optab, vec_widen_smult_even_optab,
1793         vec_widen_smult_odd_optab, vec_widen_ushiftl_hi_optab,
1794         vec_widen_ushiftl_lo_optab, vec_widen_sshiftl_hi_optab,
1795         vec_widen_sshiftl_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab,
1796         vec_unpacku_hi_optab, vec_unpacku_lo_optab, vec_unpacks_float_hi_optab,
1797         vec_unpacks_float_lo_optab, vec_unpacku_float_hi_optab,
1798         vec_unpacku_float_lo_optab, vec_pack_trunc_optab, vec_pack_ssat_optab,
1799         vec_pack_usat_optab, vec_pack_sfix_trunc_optab,
1800         vec_pack_ufix_trunc_optab, powi_optab, sync_compare_and_swap_optab,
1801         sync_lock_test_and_set_optab, sync_old_add_optab, sync_old_sub_optab,
1802         sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab,
1803         sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab,
1804         sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab,
1805         sync_new_nand_optab, sext_optab, zext_optab, trunc_optab, sfix_optab,
1806         ufix_optab, sfixtrunc_optab, ufixtrunc_optab, sfloat_optab,
1807         ufloat_optab, lrint_optab, lround_optab, lfloor_optab, lceil_optab,
1808         fract_optab, fractuns_optab, satfract_optab, satfractuns_optab,
1809         vec_load_lanes_optab, vec_store_lanes_optab, vcond_optab, vcondu_optab,
1810         movcc_optab, reload_in_optab, reload_out_optab, movmem_optab,
1811         setmem_optab, cmpstr_optab, cmpstrn_optab, cmpmem_optab,
1812         sync_lock_release_optab, sync_add_optab, sync_sub_optab,
1813         sync_ior_optab, sync_and_optab, sync_xor_optab, sync_nand_optab,
1814         atomic_exchange_optab, atomic_compare_and_swap_optab,
1815         atomic_load_optab, atomic_store_optab, atomic_add_fetch_optab,
1816         atomic_sub_fetch_optab, atomic_and_fetch_optab,
1817         atomic_nand_fetch_optab, atomic_xor_fetch_optab, atomic_or_fetch_optab,
1818         atomic_fetch_add_optab, atomic_fetch_sub_optab, atomic_fetch_and_optab,
1819         atomic_fetch_nand_optab, atomic_fetch_xor_optab, atomic_fetch_or_optab,
1820         atomic_add_optab, atomic_sub_optab, atomic_and_optab,
1821         atomic_nand_optab, atomic_xor_optab, atomic_or_optab,
1822         atomic_always_lock_free_optab, atomic_is_lock_free_optab,
1823         atomic_thread_fence_optab, atomic_signal_fence_optab,
1824         vec_perm_optab, vec_perm_const_optab): Likewise.
1825         (struct target_optabs): Remove x_optab_table, x_convert_optab_table,
1826         and x_direct_optab_table members; add pat_enable.
1827         (optab_table, convert_optab_table, direct_optab_table): Remove.
1828         (optab_handler): Use raw_optab_handler.
1829         (widening_optab_handler, convert_optab_handler): Likewise.
1830         (set_optab_handler, set_widening_optab_handler): Remove.
1831         (set_convert_optab_handler, set_direct_optab_handler): Remove.
1832         (direct_optab_handler): Defer to optab_handler.
1833         * rtl.h (NON_GENERATOR_NUM_RTX_CODE): New.
1835 2012-07-24  Jason Merrill  <jason@redhat.com>
1837         * bitmap.c (bitmap_descriptor): Adjust order of parameters to
1838         match MEM_STAT_DECL.
1839         * statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.
1841 2012-07-24  Richard Henderson  <rth@redhat.com>
1843         * optabs.h (struct optab_d): Rename code member to code_.
1844         (struct convert_optab_h): Likewise.
1845         (code_to_optab_): Rename from code_to_optab.
1846         (code_to_optab, optab_to_code): New.
1847         * dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
1848         * ifcvt.c (noce_emit_move_insn): Likewise.
1849         * optabs.c (simplify_expand_binop): Use optab_to_code.
1850         (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
1851         (avoid_expensive_constant, expand_binop_directly): Likewise.
1852         (expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
1853         (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
1854         (have_insn_for, debug_optab_libfuncs): Likewise.
1855         (init_optab, init_optabv, init_convert_optab): Update for optab
1856         member name change.
1858         * libfuncs.h: Include optabs.h.
1859         * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
1860         * Makefile.in (LIBFUNCS_H): Add OPTABS_H.
1861         (lto-streamer-in.o, dwarf2out.o): Update deps.
1863         * optabs.h (unknown_optab): New.
1864         * builtins.c (interclass_mathfn_icode): Use it.
1865         * dojump.c (do_compare_rtx_and_jump): Likewise.
1866         * optabs.c (optab_for_tree_code, expand_binop): Likewise.
1867         * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
1868         (expand_vector_operations_1): Likewise.
1869         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
1870         * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
1872 2012-07-24  Steven Bosscher  <steven@gcc.gnu.org>
1874         * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
1876 2012-07-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1878         PR target/54051
1879         * config/arm/arm.c (arm_print_operand_address): Remove superfluous
1880         printing of 0.
1881         * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
1882         specifier.
1883         ("neon_vld3_lane<mode>":VMQ): Likewise.
1884         ("neon_vld3_dup<mode>":VDX): Likewise.
1885         ("neon_vst3_lane<mode>":VD): Likewise.
1886         ("neon_vst3_lane<mode>":VMQ): Likewise.
1888 2012-07-24  Roland McGrath  <mcgrathr@google.com>
1890         * arm.c (arm_get_frame_offsets): Don't use fixed regs for
1891         stack alignment padding.
1893 2012-07-24  Uros Bizjak  <ubizjak@gmail.com>
1895         PR target/53961
1896         * config/i386/i386.c (ix86_legitimate_address_p): Move check for
1897         negative constant address for TARGET_X32 ...
1898         (ix86_decompose_address): ... here.  Reject constant addresses
1899         that don't satisfy x86_64_immediate_operand predicate.
1901 2012-07-24  Julian Brown  <julian@codesourcery.com>
1903         * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check.
1905 2012-07-24  Steven Bosscher  <steven@gcc.gnu.org>
1907         * sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
1908         Move test to check that there is a popcount function for the the number
1909         of bits in SBITMAP_ELT_BITS to sbitmap.c.
1910         * sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
1911         MEM_STAT_INFO): Define in terms of their ALONE counterparts.
1913         * configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
1914         * configure: Regenerate.
1915         * statistics.h (GATHER_STATISTICS): Error out if it is not defined.
1916         (GCC_MEM_STAT_ARGUMENTS): New define.
1917         (ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
1918         (ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
1919         (MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT,
1920         FINAL_PASS_MEM_STAT): Define.
1921         * ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
1922         * ggc.h (ggc_record_overhead, ggc_free_overhead,
1923         ggc_prune_overhead_list): Remove internal prototypes, they are defined
1924         already in ggc-internal.h.
1925         * ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
1926         wrappers.
1927         (add_statistics): Likewise.
1928         (dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
1929         * ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
1930         wrappers around "survived" and "stats" members.
1931         (alloc_large_page): Always initialize survived.
1932         (ggc_internal_alloc_zone_stat): Likewise.
1933         Remove #ifdef GATHER_STATISTICS wrappers.  Record overhead if
1934         GATHER_STATISTICS is non-0.
1935         (ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
1936         (sweep_pages): Always increase survived.
1937         (ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
1938         (calculate_average_page_survival): Always define.
1939         (ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
1940         (ggc_print_statistics): Likewise.
1941         (ggc_pch_read): Likewise.
1942         * ggc-page.c (struct globals): Always define "stats" member.
1943         (ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
1944         (ggc_free): Likewise.
1945         (ggc_collec): Likewise.
1946         (ggc_print_statistics): Likewise.
1947         * bitmap.h (struct bitmap_head_def): Always define "desc" member.
1948         (bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
1949         * gimple.h (enum gimple_alloc_kind): Always define.
1950         (gimple_alloc_kind): Likewise.
1951         * tree-flow.h (phinodes_print_statistics): Always define.
1952         (ssanames_print_statistics): Likewise.
1953         * vec.h (vec_heap_free): Always define.
1954         (VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
1955         * alloc-pool.c (alloc_pool_descriptor): Always define.
1956         (create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
1957         (empty_alloc_pool): Likewise.
1958         (pool_alloc): Likewise.
1959         (pool_free): Likewise.
1960         (dump_alloc_pool_statistics): Likewise.
1961         (print_statistics): Always define.
1962         * bitmap.c (struct bitmap_descriptor): Always define.
1963         (bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
1964         (register_overhead): Always define.
1965         (bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
1966         (bitmap_element_allocate): Likewise.
1967         (bitmap_elt_clear_from): Likewise.
1968         (bitmap_obstack_alloc_stat): Likewise.
1969         (bitmap_gc_alloc_stat): Likewise.
1970         (bitmap_obstack_free): Likewise.
1971         (bitmap_find_bit): Likewise.
1972         (bitmap_ior_and_into):  Likewise.
1973         (bitmap_print): Likewise.
1974         (dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
1975         * gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
1976         (gimple_alloc_kind_names): Likewise.
1977         (gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
1978         (dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
1979         * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
1980         rtvec_alloc_sizes): Always define.
1981         (rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
1982         (rtx_alloc_stat): Likewise.
1983         (dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
1984         * tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
1985         tree_node_sizes, tree_node_kind_names): Always define.
1986         (record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
1987         to if-code.
1988         (type_hash_canon): Likewise.
1989         (dump_tree_statistics): Likewise.
1990         * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
1991         Always define.
1992         (ssanames_print_statistics): Likewise.
1993         (make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
1994         * tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
1995         (phinodes_print_statistics): Likewise.
1996         (allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
1997         * vec.c (struct vec_descriptor): Always define.
1998         (hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
1999         vec_descriptor, rester_overhead, free_overhead): Likewise.
2000         (cmp_statistic): Likewise.
2001         (vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
2002         (vec_heap_o_reserve_1): Likewise.
2003         (dump_vec_loc_statistics): Likewise.
2005 2012-07-24  Richard Guenther  <rguenther@suse.de>
2007         PR tree-optimization/53616
2008         * tree-loop-distribution.c (ldist_gen): Do not change
2009         partition ordering when merging partitions.
2011 2012-07-24  Alan Modra  <amodra@gmail.com>
2013         PR target/53914
2014         PR target/54009
2015         * config/rs6000/constraints.md (Y): Use mem_operand_gpr.
2016         * config/rs6000/predicates.md (word_offset_memref_operand): Delete.
2017         Adjust all rs6000_legitimate_offset_address_p calls.
2018         * config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
2019         (rs6000_secondary_reload_gpr): Declare.
2020         (rs6000_legitimate_offset_address_p): Update prototype.
2021         (rs6000_offsettable_memref_p): Delete.
2022         (rs6000_secondary_reload_ppc64): Delete.
2023         * config/rs6000/rs6000.c (address_offset): New function.
2024         (mem_operand_gpr): Likewise.
2025         (rs6000_legitimate_offset_address_p): Add worst_case param.  When
2026         not worst_case assume class of regs with least restrictive offsets.
2027         Adjust all calls.
2028         (legitimate_lo_sum_address_p): Simplify register mode tests.
2029         (rs6000_legitimize_address): Likewise.  Assume best case offset
2030         addressing.  Combine ELF and MACHO lo_sum code.
2031         (rs6000_mode_dependent_address): Correct offset addressing limits.
2032         (rs6000_offsettable_memref_p): Make static, add reg_mode param.
2033         Use reg_mode to help rs6000_legitimate_offset_address_p.
2034         (rs6000_secondary_reload): Use address_offset.  Handle 32-bit multi
2035         gpr load/store when offset too large.
2036         (rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
2037         (rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
2038         * config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
2039         for gpr load/store.  Order alternatives as r->Y,Y->r,r->r and
2040         d->m,m->d,d->d.  Correct size of gpr load/store.
2041         (movdf_softfloat32): Use 'Y' constraint for gpr load/store.  Order
2042         alternatives.
2043         (movti_ppc64): Likewise.
2044         (movdi_internal32): Likewise.  Also disparage fprs.
2045         (movdi_mfpgpr, movdi_internal64): Likewise.
2046         (movtf_internal): Use 'm' for fpr load/store.  Order alternatives.
2047         (movtf_softfloat): Order alternatives.
2048         (extenddftf2_internal): Use 'm' and 'Y' for store.
2049         (movti_power, movti_string): Use 'Y' for gpr load/store.  Order.
2050         (stack_protect_setdi, stack_protect_testdi): Likewise.
2051         (movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
2052         (movdf_softfloat64): Likewise.
2053         (reload_<mode>_store): Adjust reload_di_store to provide
2054         reload_si_store as well.
2055         (reload_<mode>_load): Likewise.
2057 2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>
2059         PR target/51244
2060         * config/sh/predicates.md (general_movsrc_operand,
2061         general_movdst_operand): Reject T_REG.
2062         * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
2063         movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
2064         Remove T_REG alternatives.
2065         (*negtstsi): New insn.
2067 2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>
2069         PR target/53511
2070         * config/sh/sh.md (mulsf3_ie): Delete.
2071         (mulsf3_i4): Rename to mulsf3_i.
2072         (mulsf3): Emit mulsf3_i insn.
2074 2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>
2076         * config/sh/sh.md (addc1, subc1): Delete.
2077         (adddi3_compact): Use addc instead of addc1.
2078         (subdi3_compact): Use subc instead of subc1.
2080 2012-07-23  Uros Bizjak  <ubizjak@gmail.com>
2082         * config/i386/i386-protos.c (ix86_lea_outperforms): Remove prototype.
2083         * config/i386/i386.c (ix86_lea_outperforms): Make static.  Make
2084         split_cost argument signed.
2085         (ix86_avoid_lea_for_add): Cleanup.
2086         (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
2087         (ix86_avoid_lea_for_addr): Ditto.  Make split_cost signed.
2088         Use gen_lowpart instead of gen_rtx_SUBREG.  Cleanup.
2090 2012-07-23  Ulrich Weigand  <ulrich.weigand@linaro.org>
2092         * config/arm/arm.c (arm_reorg): Ensure all insns are split.
2094 2012-07-23  Uros Bizjak  <ubizjak@gmail.com>
2096         PR target/53961
2097         * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
2098         * config/i386/i386.c (ix86_print_operand_address): Ditto.
2099         (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
2100         addresses.  Prevent zero extensions of CONST_INT operands.
2102 2012-07-23  Steven Bosscher  <steven@gcc.gnu.org>
2104         * sbitmap.h (struct int_list): Remove.
2105         (sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
2106         Remove prototypes of non-existing function.
2107         (sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
2108         sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
2109         unused defines.
2110         (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
2111         sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
2112         * basic-block.h: ... here.
2113         * sbitmap.c: Do not include basic-block.h.
2114         (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
2115         sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
2116         * cfganal.c: ... here.
2117         * bt-load.c (compute_out, link_btr_uses): Update for above changes.
2118         * gcse.c (compute_code_hoist_vbeinout): Likewise.
2119         * lcm.c (compute_antinout_edge, compute_available): Likewise.
2120         * Makefile.in: Fix sbitmap.o dependencies.
2122 2012-07-23  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2123             Nick Clifton  <nickc@redhat.com>
2125         * config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
2126         * config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
2127         (unused) parameter to void *.
2129 2012-07-23  Richard Guenther  <rguenther@suse.de>
2131         * tree-ssa-alias.c (dump_alias_info): Walk over local decls
2132         instead of referenced vars.
2134 2012-07-23  Steven Bosscher  <steven@gcc.gnu.org>
2136         * coverage.c: Refer to "notes file" instead of "graph file"
2137         in all comments.  Explain history of bbg prefix.
2138         * gcov-io.h: Likewise.
2139         * gcov.c: Likewise.
2140         (find_source): Likewise in fnotice.
2141         (read_graph_file): Likewise.
2142         (read_count_file): Likewise.
2143         * doc/gcov.texi: Document -fprofile-dir flag.  Add "notes file"
2144         and "data file" explicitly in the explanation of the files.
2146 2012-07-22  Steven Bosscher  <steven@gcc.gnu.org>
2148         PR tree-optimization/53881
2149         * tree-cfg.c (group_case_labels_stmt): Look up the basic block
2150         for each label and compare them instead of labels.
2152 2012-07-22  Steven Bosscher <steven@gcc.gnu.org>
2154         * opts.c (common_handle_option): Do not set
2155         flag_value_profile_transformations for -fprofile-generate.
2156         * profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
2157         (BB_TO_GCOV_INDEX): Remove.
2158         (output_location): Don't use it.
2159         (branch_prob): Likewise.  Don't fiddle with the index of
2160         ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.  Use clear_aux_for_blocks.
2161         (find_spanning_tree):
2162         * gcov.c (struct function_info): Document that blocks 0 and 1
2163         are the entry resp. exit blocks in gcov, too, like in GCC itself.
2164         (solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
2165         blocks identification.
2166         (output_lines): Likewise.
2167         * value-prof.c (gimple_value_profile_transformations): Do not
2168         test flag_value_profile_transformations again.
2169         (gimple_ic_transform): Take a gimple_stmt_iterator like all other
2170         transformation functions.
2171         (gimple_values_to_profile):
2172         Don't test flag_value_profile_transformations
2173         * tree-profile.c (tree_profiling): Assert that the cgraph is in
2174         the CGRAPH_STATE_IPA_SSA state.
2175         Do not set, or look at, after_tree_profile.
2176         * function.h (struct function): Remove after_tree_profile bit.
2177         * omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
2178         * tree-inline.c (initialize_cfun): Don't copy it.
2179         * lto-streamer-out.c (output_struct_function_base): Don't stream it.
2180         * lto-streamer-in.c (input_struct_function_base): Likewise.
2182 2012-07-22  Oleg Endo  <olegendo@gcc.gnu.org>
2184         * config/sh/sh.h (TARGET_DYNSHIFT): New macro.
2185         (SH_DYNAMIC_SHIFT_COST): Use it.
2186         * config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
2187         (sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
2188         Add sanity check for input value.  Add function description.
2189         * config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
2190         lshrsi3_d): Use TARGET_DYNSHIFT.
2192 2012-07-22  Oleg Endo  <olegendo@gcc.gnu.org>
2194         * config/sh/sh.md (negc): Delete expander.
2195         (*negc): Rename insn to negc.
2197 2012-07-22  Uros Bizjak  <ubizjak@gmail.com>
2199         PR target/53961
2200         * config/i386/i386.md (*lea): New insn pattern.
2201         (*lea_1): Remove.
2202         (*lea<mode>_2): Ditto.
2203         (*lea_{3,4,5,6}_zext): Ditto.
2204         * config/i386/predicates.md (lea_address_operand): Do not reject
2205         zero-extended address operands.
2206         * config/i386/constraints.md (j): Remove address constraint.
2207         * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
2208         of an address.
2209         (ix86_print_operand_address): Handle SImode subreg of an address.
2210         (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
2212 2012-07-22  Hans-Peter Nilsson  <hp@axis.com>
2214         Emit executable-stack note correctly for CRIS targets.
2215         * config/cris/cris.c (cris_file_end): New function.
2216         (TARGET_ASM_FILE_END): Define.
2218 2012-07-22  Chung-Lin Tang  <cltang@codesourcery.com>
2219             Maxim Kuvyrkov  <maxim@codesourcery.com>
2220             NetLogic Microsystems Inc.
2222         * config/mips/mips.c (mips_issue_rate): Handle XLP.
2223         * config/mips/mips.md: Include xlp.md.
2224         * config/mips/xlp.md: New file.
2226 2012-07-21  Steven Bosscher <steven@gcc.gnu.org>
2228         PR gcov-profile/32543
2229         * profile.c (branch_prob): Update total_num_edges_instrumented and
2230         report the number of edges to instrument.
2232 2012-07-21  Oleg Endo  <olegendo@gcc.gnu.org>
2234         * config/sh/sh.md: Correct comment regarding clrt and sett insns.
2236 2012-07-21  Andrew Pinski  <apinski@cavium.com>
2238         * config/mips/mips.md (*popcountdi2_trunc): New pattern
2239         to handle popcount of a truncation.
2241 2012-07-21  Andrew Pinski  <apinski@cavium.com>
2243         * config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
2244         Add a bool argument.
2245         * config/mips/mips.c (mips_block_move_straight): Update call to
2246         mips_expand_ext_as_unaligned_load.
2247         (mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
2248         Accept DImode dest when the width is that of SImode.
2249         * config/mips/mips.md (extv): Update call to
2250         mips_expand_ext_as_unaligned_load.
2251         (extzv): Likewise.
2253 2012-07-21  Andrew Pinski  <apinski@cavium.com>
2255         * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
2256         adjust_address.
2258 2012-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
2260         * config/mips/mips.md (define_attr sync_*): Move before "type".
2261         (define_attr "type"): New values "atomic" and "syncloop".
2262         * config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
2263         Set "type" attribute.
2264         * config/mips/generic.md (generic_atomic, generic_syncloop):
2265         New reservations.
2266         * gcc/config/mips/10000.md, gcc/config/mips/20kc.md,
2267         * gcc/config/mips/24k.md, gcc/config/mips/4130.md,
2268         * gcc/config/mips/4k.md, gcc/config/mips/5400.md,
2269         * gcc/config/mips/5500.md, gcc/config/mips/5k.md,
2270         * gcc/config/mips/7000.md, gcc/config/mips/74k.md,
2271         * gcc/config/mips/9000.md, gcc/config/mips/loongson2ef.md,
2272         * gcc/config/mips/loongson3a.md, gcc/config/mips/octeon.md,
2273         * gcc/config/mips/sb1.md, gcc/config/mips/sr71k.md,
2274         * gcc/config/mips/xlr.md: Handle "atomic" and "syncloop" types.
2276 2012-07-20  Oleg Endo  <olegendo@gcc.gnu.org>
2278         * config/sh/sh.md: Group and sort shift related patterns.
2279         (ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.
2281 2012-07-20  Hans-Peter Nilsson  <hp@axis.com>
2283         * config/cris/cris.c (cris_asm_output_ident): Remove unused
2284         local variables section_asm_op, size, buf.
2286 2012-07-20  Pat Haugen <pthaugen@us.ibm.com>
2287             Steven Bosscher  <steven@gcc.gnu.org>
2289         * config/rs6000/power4.md (power4-store-update): Fix reservation.
2290         (power4-three): Likewise.
2292 2012-07-20  Sameera Deshpande  <sameera.deshpande@arm.com>
2293             Greta Yorsh  <Greta.Yorsh@arm.com>
2295         * config/arm/arm.c (arm_cortex_a15_tune): New tune.
2296         * config/arm/arm-cores.def (cortex-a15): Use it.
2298 2012-07-20  Sameera Deshpande  <sameera.deshpande@arm.com>
2299             Greta Yorsh  <Greta.Yorsh@arm.com>
2301         * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
2302         * config/arm/arm.c (arm_slowmul_tune): Initialize it.
2303         (arm_fastmul_tune, arm_strongarm_tune): Likewise.
2304         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
2305         (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
2306         (arm_fa726te_tune): Likewise.
2308 2012-07-20  Richard Guenther  <rguenther@suse.de>
2310         * tree-dfa.c (collect_dfa_stats): Simplify.
2311         * tree-ssa-structalias.c (compute_may_aliases): Do not dump
2312         referenced vars.
2313         * cfgexpand.c (estimated_stack_frame_size): Walk over local
2314         decls instead of referenced vars.
2315         * tree-ssa.c (delete_tree_ssa): Simplify.
2316         * tree-tailcall.c (find_tail_calls): Walk over local decls
2317         instead of referenced vars.
2318         (add_virtual_phis): Remove.
2319         (tree_optimize_tail_calls_1): Instead mark the virtual operand
2320         for renaming.
2322 2012-07-20  Steven Bosscher  <steven@gcc.gnu.org>
2324         * basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
2325         (brief_dump_cfg): Update prototype to take flags argument.
2326         (check_bb_profile): Remove prototype.
2327         * tracer.c (tracer): Update brief_dump_cfg calls.
2328         * cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
2329         Call dump_bb_info before and after the cfghook dump_bb.  Terminate
2330         the dump with a newline.
2331         (dump_flow_info): Do not call check_bb_profile.
2332         * cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
2333         (check_bb_profile): Make static.  Take indent and flags arguments.
2334         (dump_bb_info): Always dump loop depth.  With TDF_DETAILS, call
2335         check_bb_profile.  Print one edge per line.
2336         (brief_dump_cfg): Take a flags argument, and filter out
2337         TDF_COMMENT and TDF_DETAILS.
2338         * pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
2339         * gimple-pretty-print.c (dump_gimple_bb_header): Do not use
2340         dump_bb_info here, it is already called from dump_bb.  Idem for
2341         check_bb_profile.
2342         (dump_gimple_bb_footer): Likewise.
2343         (gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
2344         avoid broken dumps for statement histograms.
2345         (gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK.  Do
2346         not call pp_flush here, the buffer should be empty.
2347         * sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
2348         * sched-vis.c (debug_bb_slim): Likewise.
2349         * tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
2350         (gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
2351         (gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
2352         (dump_function_to_file): Do not call check_bb_profile on
2353         ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
2354         Use dump_bb instead of gimple_dump_bb.
2355         (print_loops_bb): Use dump_bb instead of gimple_dump_bb.
2356         * passes.c (execute_function_dump): Always call print_rtl_with_bb
2357         for RTL dumps.
2358         * cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
2359         CFG.  With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and
2360         bottom of each basic block.
2362 2012-07-20  Richard Guenther  <rguenther@suse.de>
2364         PR tree-optimization/54031
2365         * tree-ssa-ccp.c (get_value_from_alignment): Use
2366         get_pointer_alignment_1.
2368 2012-07-20  Richard Guenther  <rguenther@suse.de>
2370         * tree-inline.c (add_local_variables): Remove check_var_ann
2371         parameter and dead code.
2372         (expand_call_inline): Adjust.
2373         (tree_function_versioning): Likewise.
2375 2012-07-20  Jakub Jelinek  <jakub@redhat.com>
2377         PR c++/28656
2378         * tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
2379         of just the first one.
2381 2012-07-20  Richard Guenther  <rguenther@suse.de>
2383         * builtins.c (get_object_alignment_2): Correct offset handling
2384         when using type alignment of a MEM_REF kind base.
2386 2012-07-20  Kirill Yukhin  <kirill.yukhin@intel.com>
2388         PR target/53877
2389         * config/i386/lzcntintrin.h (_lzcnt_u32): New.
2390         (_lzcnt_u64): Ditto.
2392 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2394         * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
2396 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2398         * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
2399         defining statement is a SSA name that occurs in abnormal PHIs.
2401 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2403         * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
2404         conversions.
2406 2012-07-19  Jakub Jelinek  <jakub@redhat.com>
2408         PR rtl-optimization/53942
2409         * function.c (assign_parm_setup_reg): Avoid zero/sign extension
2410         directly from likely spilled non-fixed hard registers, move them
2411         to pseudo first.
2413 2012-07-19  Steve Ellcey  <sellcey@mips.com>
2415         * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
2416         MIPS16 mode.
2418 2012-07-19  Jason Merrill  <jason@redhat.com>
2420         PR debug/53235
2421         * dwarf2out.c (get_die_parent): New.
2422         (generate_type_signature): Use it.
2424 2012-07-19  Richard Henderson  <rth@redhat.com>
2426         * config/ia64/vect.md (smulv4hi3_highpart): New.
2427         (umulv4hi3_highpart): New.
2428         (vec_widen_smult_even_v4hi): Rename from pmpy2_even.
2429         (vec_widen_smult_odd_v4hi): Rename from pmpy2_odd.
2430         (udot_prodv8qi, sdot_prodv8qi): Remove.
2431         (sdot_prodv4hi, udot_prodv4hi): Remove.
2432         * config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove.
2433         * config/ia64/ia64-protos.h: Update.
2435         * tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require
2436         vectors larger than UNITS_PER_WORD.
2438         * expr.c (store_constructor): Initialize icode with CODE_FOR_nothing.
2439         * tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for
2440         dummy != CODE_FOR_nothing value.
2442 2012-07-19  Uros Bizjak  <ubizjak@gmail.com>
2444         * doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument.
2445         * doc/tm.texi: Regenerate.
2446         * mode-switching.c (optimize_mode_switching): Update MODE_AFTER call.
2447         * config/sh/sh.h (MODE_AFTER): Update.
2448         * config/epiphany/epiphany.h (MODE_AFTER): Update.
2450 2012-07-19  Jakub Jelinek  <jakub@redhat.com>
2452         PR middle-end/54017
2453         * tree-cfgcleanup.c (cleanup_omp_return): Remove.
2454         (cleanup_tree_cfg_bb): Don't call it.
2455         * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
2456         handling.
2458 2012-07-19  Christian Bruel  <christian.bruel@st.com>
2460         PR target/54029
2461         * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
2463 2012-07-19  Richard Guenther  <rguenther@suse.de>
2464             Eric Botcazou  <ebotcazou@adacore.com>
2466         * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
2467         about transition from invariant to known bits.
2468         (likely_value): Addresses with UNDEFINED components are UNDEFINED.
2470 2012-07-19  Richard Guenther  <rguenther@suse.de>
2472         PR tree-optimization/53970
2473         * tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning.
2475 2012-07-19  Tristan Gingold  <gingold@adacore.com>
2476             Richard Henderson  <rth@redhat.com>
2478         * opts.c (finish_options): Handle UI_SEH.
2479         * expr.c (build_personality_function): Handle UI_SEH.
2480         * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
2481         * coretypes.h (unwind_info_type): Add UI_SEH.
2482         * config/i386/winnt.c (i386_pe_seh_emit_except_personality):
2483         New function.
2484         (i386_pe_seh_init_sections): Likewise.
2485         * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
2486         (TARGET_ASM_INIT_SECTIONS): Define.
2487         * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2488         (i386_except_unwind_info): New function.
2490 2012-07-18  Maciej W. Rozycki  <macro@codesourcery.com>
2491             Chao-ying Fu  <fu@mips.com>
2493         * config/mips/mips.opt (mmcu): New option.
2494         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
2495         _mips_mcu when TARGET_MCU.
2496         (ASM_SPEC): Pass mcu options to the assembler.
2497         * doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu.
2499 2012-07-18  Ralf Corsépius  <ralf.corsepius@rtems.org>
2501         * config.gcc (v850-*-rtems*): New target.
2502         * config/v850/rtems.h: New.
2503         * config/v850/t-rtems: New.
2505 2012-07-18  Bill Schmidt  <wschmidt@linux.ibm.com>
2507         * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
2508         of flags controlling optimization; add -ftree-slsr to list of flags
2509         enabled by default at -O; add -fhoist-adjacent-loads to list of flags
2510         enabled by default at -O2; add -fvect-cost-model to list of flags
2511         enabled by default at -O3; document -fhoist-adjacent-loads and
2512         -ftree-slsr.
2513         * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
2514         * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
2515         flag_tree_slsr.
2516         * common.opt: Add -ftree-slsr with flag_tree_slsr.
2518 2012-07-18  Jie Zhang  <jzhang918@gmail.com>
2519             Julian Brown  <julian@codesourcery.com>
2521         * config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR.
2522         (arm_size_rtx_costs): Likewise.
2523         (neon_valid_immediate): Add a case for double 0.0.
2525 2012-07-18  Andrew Stubbs  <ams@codesourcery.com>
2526             Mark Shinwell  <shinwell@codesourcery.com>
2527             Julian Brown  <julian@codesourcery.com>
2529         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
2530         (*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
2531         (*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
2532         (*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
2533         neon_type.
2534         * config/arm/arm.md (neon_type): Update comment.
2536 2012-07-18  Richard Guenther  <rguenther@suse.de>
2538         PR tree-optimization/53970
2539         * tree.h (contains_packed_reference): Remove.
2540         * expr.c (contains_packed_reference): Likewise.
2541         * tree-vect-data-refs.c (not_size_aligned): New function.
2542         (vector_alignment_reachable_p): Use it.
2543         (vect_supportable_dr_alignment): Likewise.
2545 2012-07-18  Richard Guenther  <rguenther@suse.de>
2547         * tree.h (get_object_or_type_alignment): Remove.
2548         * builtins.c (get_object_alignment_2): New function copied from
2549         get_object_alignment_1.  Take extra argument to indicate whether
2550         we take the address of EXP.  Rework to use type alignment information
2551         if not, and return whether the result is an approximation or not.
2552         (get_object_alignment_1): Wrap around get_object_alignment_2.
2553         (get_pointer_alignment_1): Call get_object_alignment_2 indicating
2554         we take the address.
2555         (get_object_or_type_alignment): Remove.
2556         * expr.c (expand_assignment): Call get_object_alignment.
2557         (expand_expr_real_1): Likewise.
2559 2012-07-18  Nick Clifton  <nickc@redhat.com>
2561         * doc/invoke.texi (ARM Options): Document -munaligned-access.
2563 2012-07-18  Oleg Endo  <olegendo@gcc.gnu.org>
2565         * config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in
2566         expander.  Use arith_reg_dest predicate.
2567         (rotldi3, rotrdi3): Remove constraints in expander.
2568         (adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact,
2569         ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to
2570         insn_and_split.
2572 2012-07-18  Oleg Endo  <olegendo@gcc.gnu.org>
2574         PR target/33135
2575         * config/sh/sh.opt (mieee): Use Var instead of Mask.  Correct
2576         description.
2577         * config/sh/sh.c (sh_option_override): Do not change
2578         flag_finite_math_only.  Set TARGET_IEEE to complement of
2579         flag_finite_math_only.
2580         * doc/invoke.texi (SH options): Add mno-ieee.  Correct description
2581         of mieee and mno-ieee behavior.
2583 2012-07-18  Steven Bosscher  <steven@gcc.gnu.org>
2585         * graphite-poly.c (print_pbb_body): Fixup dump_bb call.
2587 2012-07-18  Steven Bosscher  <steven@gcc.gnu.org>
2589         * dumpfile.h (TDF_COMMENT): New define.
2590         * basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
2591         EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
2592         EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
2593         EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
2594         Move to new file cfg-flags.h.
2595         (enum cfg_edge_flags): New enum, using cfg-flags.h.
2596         (EDGE_ALL_FLAGS): Compute value automatically.
2597         (BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
2598         BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
2599         BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
2600         BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
2601         BB_IN_TRANSACTION): Move to new file cfg-flags.h.
2602         (enum bb_flags): Rename to cfg_bb_flags.  Use cfg-flags.h.
2603         (BB_ALL_FLAGS): New, compute value automatically.
2604         (dump_bb_info): Update prototype.
2605         (dump_edge_info): Update prototype.
2606         * cfg-flags.h: New file.
2607         * cfg.c (dump_edge_info): Take flags argument.  Be verbose only if
2608         TDF_DETAILS and not TDF_SLIM.  Include cfg-flags.h for bitnames.
2609         Check that the edge flags are within the range of EDGE_ALL_FLAGS.
2610         (debug_bb): Update dump_bb call.
2611         (dump_cfg_bb_info): Remove.
2612         (dump_bb_info): New function.  Use cfg-flags.h for bitnames.
2613         Adjust verbosity using TDF_* flags.  Check that the basic block flags
2614         are within the range of BB_ALL_FLAGS.
2615         (brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
2616         * cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
2617         first for consistency with other dump functions.
2618         (dump_bb): Update prototype accordingly.
2619         * cfghooks.c: Include dumpfile.h.
2620         (verify_flow_info): Update dump_edge_info calls.
2621         (dump_bb): Take a flags argument and pass it around.
2622         Use dump_bb_info to dump common information about a basic block.
2623         (dump_flow_info): Moved here from cfgrtl.c.  Make IL agnostic.
2624         (debug_flow_info): Moved here from cfgrtl.c.
2625         * profile.c (is_edge_inconsistent): Update dump_bb calls.
2626         * loop-invariant.c (find_defs): Update print_rtl_with_bb call.
2627         * rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
2628         print_rtl_slim_with_bb): Remove prototypes.
2629         (dump_insn_slim): Adjust prototype to take a const_rtx.
2630         (print_rtl_with_bb): Adjust prototype.
2631         * sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
2632         * sched-vis.c (dump_insn_slim): Take a const_rtx.
2633         (debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
2634         (print_rtl_slim_with_bb): Remove.
2635         (print_rtl_slim): Rename to debug_rtl_slim.  Print only insn info,
2636         not basic block info (print_rtl_with_bb with TDF_SLIM should be used
2637         for that.  Prototype here near DEBUG_FUNCTION marker.
2638         (debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
2639         Use dump_bb.
2640         (debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
2641         * tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
2642         (remove_bb): Update dump_bb call.
2643         (gimple_debug_bb): Use dump_bb.
2644         (dump_function_to_file): Update gimple_dump_bb call.
2645         (print_loops_bb): Likewise.
2646         * tree-flow.h (gimple_dump_bb): Update prototype.
2647         * gimple-pretty-print.c (dump_bb_header): Rename to
2648         dump_gimple_bb_header.  Write to a stream instead of a pretty
2649         printer.  Use dump_bb_info to dump basic block info.
2650         (dump_bb_end): Rename to dump_gimple_bb_footer.  Write to a
2651         stream instead of a pretty printer.  Use dump_bb_info.
2652         (gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
2653         (gimple_dump_bb): Do it here with dump_gimple_bb_header and
2654         dump_gimple_bb_footer.
2655         * cfgrtl.c (rtl_dump_bb): Update prototype.  Only dump DF if the
2656         dump flags have TDF_DETAILS.  Use dump_insn_slim if TDF_SLIM.
2657         (print_rtl_with_bb): Take a flags argument and pass it around.
2658         Use dump_insn_slim if TDF_SLIM.
2659         (dump_bb_info): Removed and re-incarnated in cfg.c.
2660         (dump_flow_info): Moved to cfghooks.c.
2661         (debug_flow_info): Moved to cfghooks.c.
2662         * passes.c (execute_function_dump): Unconditionally use
2663         print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
2664         * final.c (dump_basic_block_info): Update dump_edge_info calls.
2665         * tree-vrp.c (dump_asserts_for): Likewise.
2666         * ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
2667         * tree-if-conv.c (if_convertible_bb_p): Don't look at
2668         EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
2669         * trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
2670         for the same reason.
2671         * config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.
2673 2012-07-17  Richard Guenther  <rguenther@suse.de>
2675         * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
2676         vars here, use create_tmp_reg where appropriate.
2677         (vect_create_addr_base_for_vector_ref): Do not add referenced
2678         vars here, use create_tmp_reg where appropriate.
2679         (vect_create_data_ref_ptr): Likewise.
2680         (vect_create_destination_var): Likewise.
2681         (vect_permute_store_chain): Likewise.
2682         (vect_permute_load_chain): Likewise.
2683         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
2684         Likewise.
2685         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
2686         * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
2687         (vect_handle_widen_op_by_const): Likewise.
2688         * tree-vect-stmts.c (vect_init_vector): Likewise.
2689         (vectorizable_load): Likewise.
2691 2012-07-17  Tom de Vries  <tom@codesourcery.com>
2693         * hwint.c: Fix loop range.
2695 2012-07-17  Tom de Vries  <tom@codesourcery.com>
2697         * double-int.h (double_int_popcount): New inline function.
2698         * hwint.c (popcount_hwi): New function.
2699         * hwint.h (popcount_hwi): Declare function.  New inline function.
2701 2012-07-17  Richard Henderson  <rth@redhat.com>
2703         * tree-vect-stmts.c (supportable_widening_operation): Remove decl
2704         parameters.
2705         (vectorizable_conversion): Update supportable_widening_operation call.
2706         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
2707         (vect_recog_widen_shift_pattern): Likewise.
2708         * tree-vectorizer.h: Update decl.
2710 2012-07-17  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2711             Ulrich Weigand  <ulrich.weigand@linaro.org>
2713         * common/config/arm/arm-common.c (arm_option_optimization_table):
2714         Enable -fsched-pressure by default while optimizing.
2715         * config/arm/arm.c (arm_option_override): Use the alternate scheduler
2716         pressure algorithm by default.
2718 2012-07-16  Oleg Endo  <olegendo@gcc.gnu.org>
2720         * config/sh/sh.h (CONST_OK_FOR_I06): Delete.
2721         (CONST_OK_FOR_I10): Move macro to ...
2722         * config/sh/sh.c: ... here.
2723         (sh_legitimate_index_p): Use satisfies_constraint_I06 instead of
2724         CONST_OK_FOR_I06.
2726 2012-07-16  Oleg Endo  <olegendo@gcc.gnu.org>
2728         * config/sh/sh.md: Delete mov related define_peephole patterns.
2730 2012-07-16  Jonathan Wakely  <jwakely.gcc@gmail.com>
2732         PR c++/53919
2733         * doc/install.texi (Installing GCC): Refer to instructions for
2734         released versions. Fix hyphenation.
2736 2012-07-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2738         * config/spu/spu.c (targetm): Move to bottom of file.
2739         (spu_attribute_table): Likewise.
2740         (spu_option_override, spu_init_builtins, spu_builtin_decl,
2741         spu_scalar_mode_supported_p, spu_vector_mode_supported_p,
2742         spu_legitimate_address_p, spu_addr_space_legitimate_address_p,
2743         adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store,
2744         frame_emit_load, frame_emit_add_imm, emit_nop_for_insn,
2745         insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare,
2746         get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate,
2747         spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global,
2748         spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute,
2749         spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg,
2750         spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start,
2751         spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr,
2752         spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs,
2753         spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory,
2754         spu_encode_section_info, spu_legitimize_address,
2755         spu_addr_space_legitimize_address, spu_builtin_mask_for_load,
2756         spu_builtin_vectorization_cost, spu_vector_alignment_reachable,
2757         spu_addr_space_pointer_mode, spu_addr_space_address_mode,
2758         spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii,
2759         spu_section_type_flags, spu_select_section, spu_unique_section,
2760         spu_trampoline_init, spu_conditional_register_usage,
2761         spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode,
2762         spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode,
2763         spu_setup_incoming_varargs): Remove prototypes.
2764         (spu_legitimize_address): Add "static" to definition.
2766 2012-07-16  Jakub Jelinek  <jakub@redhat.com>
2768         * config/i386/rtmintrin.h (_xabort): Remove trailing semicolon.
2770 2012-07-16  Ulrich Weigand  <ulrich.weigand@linaro.org>
2772         * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
2773         before calling gsi_stmt.
2775 2012-07-16  Kirill Yukhin  <kirill.yukhin@intel.com>
2777         Revert
2778         2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
2780         * config/i386/i386.md (stack_protect_set): Disable the pattern
2781         for Android since Android libc (bionic) does not provide random
2782         value for stack protection guard at gs:0x14. Guard value
2783         will be provided from external symbol (default implementation).
2784         (stack_protect_set_<mode>): Likewise.
2785         (stack_protect_test): Likewise.
2786         (stack_protect_test_<mode>): Likewise.
2788 2012-07-16  H.J. Lu  <hongjiu.lu@intel.com>
2790         PR middle-end/53959
2791         PR bootstrap/53963
2792         * gimple.c (gimple_types_compatible_p_1): Restore type attribute
2793         comparison.
2795 2012-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
2797         * opts.c (default_option): Add -fvect-cost-model to default options
2798         at -O3 and above.
2800 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
2802         * graphite-clast-to-gimple.c, graphite-dependences.c,
2803         graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h
2804         for pass TODO flags.
2805         * Makefile.in: Fix dependencies.
2807 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
2809         * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
2810         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2812         * function.c (stack_protect_epilogue): Use expand_call to expand
2813         targetm.stack_protect_fail.
2814         * stmt.c (expand_expr_stmt): Remove now-unused function.
2815         * tree.h (expand_expr_stmt): Remove prototype.
2816         * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
2817         hook must return a CALL_EXPR.
2818         * doc/tm.texi: Regenerate.
2820         * emit-rtl.c (emit_label_before): Do not allow the same label
2821         to be emitted twice.
2822         (emit_label_after): Likewise.
2823         (emit_label): Likewise.
2825         * flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
2826         TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
2827         * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
2828         TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.
2830 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
2832         * system.h (dump_file): Do not define.
2833         * tree-pass.h: Include dumpfile.h, which is a new file containing...
2834         (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
2835         dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
2836         dump_flag_name, dump_file, dump_flags, dump_file_name,
2837         get_dump_file_info, struct dump_file_info): all of this, moved to...
2838         * dumpfile.h: Here, new file.
2839         * tree-dump.h: Include dumpfile.h, but not tree-pass.h.
2840         (dump_stmt): Remove prototype for C++ specific function.
2841         (dump_enumerated_decls): Move prototype from here...
2842         * tree-flow.h (dump_enumerated_decls): ... to here.
2843         (get_ref_base_and_extent) Move prototype from here ...
2844         * tree.h (get_ref_base_and_extent) ... to here.
2845         * tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
2846         gimple-pretty-print.h is enough.  Do not include tree-dump.h,
2847         include timevar.h and dumpfile.h instead.
2848         (struct numbered_tree_d, compare_decls_by_uid,
2849         dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
2850         * tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
2851         dump_enumerated_decls_push, dump_enumerated_decls):... to here.
2852         Do not include timevar.h.
2853         * tree.c: Do not include timevar.h.
2854         * tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
2855         timevar.h.
2856         (dump_cfg_stats): Use current_function_name.
2857         (gimple_cfg2vcg): Likewise.
2858         (dump_function_to_file): Likewise.
2859         * df-scan.c: Do not include tree-pass.h and timevar.h.
2860         Include dumpfile.h.
2861         (df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
2862         use print_current_pass.
2863         * df-problems.c: Include dumpfile.h.
2864         Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
2865         leads to errors in the code not selected.
2866         (df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
2867         bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
2868         * lcm.c: Include dumpfile.h.
2869         Remove obsolete include of insn-attr.h.
2870         * dojump.c (do_compare_rtx_and_jump): Remove failure printing for
2871         missing probability notes.
2872         * stmt.c: Include dumpfile.h.
2873         (emit_case_decision_tree): Re-enable printing expand details only
2874         if TDF_DETAILS.
2875         * alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
2876         cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
2877         cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
2878         coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
2879         dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
2880         function.c, fwprop.c, gcse.c, gimple-fold.c,
2881         gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
2882         gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
2883         graphite-dependences.c, graphite-interchange.c,
2884         graphite-optimize-isl.c, graphite-poly.c,
2885         graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
2886         ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
2887         ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
2888         ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
2889         jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
2890         loop-unroll.c, loop-unswitch.c, lower-subreg.c,
2891         lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
2892         mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
2893         plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
2894         print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
2895         regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
2896         sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
2897         store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
2898         tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
2899         tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
2900         tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
2901         tree-mudflap.c, tree-nrv.c, tree-object-size.c,
2902         tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
2903         tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
2904         tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
2905         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
2906         tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
2907         tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
2908         tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
2909         tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
2910         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
2911         tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
2912         tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
2913         tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
2914         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
2915         tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
2916         tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
2917         tree-ssa-uncprop.c, tree-ssa-uninit.c,
2918         tree-switch-conversion.c, tree-tailcall.c,
2919         tree-vect-data-refs.c, tree-vect-loop.c,
2920         tree-vect-loop-manip.c, tree-vectorizer.c,
2921         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
2922         tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
2923         only if needed.  If tree-pass.h is included, do not include timevar.h
2924         and dumpfile.h.  If tree-pass.h is not included but dump_file, or
2925         dump_flags, or the TDF_* flags are used, include dumpfile.h.
2926         If gimple-pretty-print.h is included, don't include
2927         tree-pretty-print.h.  Remove assorted unnecessary includes.
2929         * config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
2930         config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
2931         config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
2932         Include dumpfile.h.
2933         * config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
2934         * arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
2935         spu/t-spu-elf: Fix dependencies.
2937 2012-07-16  Dehao Chen  <dehao@google.com>
2939         Revert
2940         2012-07-10  Dehao Chen  <dehao@google.com>
2942         * tree.h (phi_arg_d): New field.
2943         * tree-flow-inline.h (gimple_phi_arg_block): New function.
2944         (gimple_phi_arg_block_from_edge): New function.
2945         (gimple_phi_arg_set_block): New function.
2946         (gimple_phi_arg_has_block): New function.
2947         (redirect_edge_var_map_block): New function.
2948         * tree-flow.h (_edge_var_map): New field.
2949         * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
2950         * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
2951         redirect_edge_var_map_add.
2952         * tree-outof-ssa.c (_elim_graph): New field.
2953         (insert_partition_copy_on_edge): New parameter.
2954         (insert_value_copy_on_edge): New parameter.
2955         (insert_rtx_to_part_on_edge): New parameter.
2956         (insert_part_to_rtx_on_edge): New parameter.
2957         (elim_graph_add_edge): New parameter.
2958         (elim_graph_remove_succ_edge): New parameter.
2959         (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
2960         (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
2961         (new_elim_graph): Add block debug info.
2962         (clear_elim_graph): Likewise.
2963         (delete_elim_graph): Likewise.
2964         (elim_graph_add_node): Likewise.
2965         (elim_graph_add_edge): Likewise.
2966         (elim_graph_remove_succ_edge): Likewise.
2967         (eliminate_build): Likewise.
2968         (elim_forward): Likewise.
2969         (elim_unvisited_predecessor): Likewise.
2970         (elim_backward): Likewise.
2971         (elim_create): Likewise.
2972         (eliminate_phi): Likewise.
2973         (insert_backedge_copies): Likewise.
2974         * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
2975         add_phi_arg.
2976         (rewrite_add_phi_arguments): Likewise.
2977         * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
2978         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
2979         * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
2980         * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
2981         * tree-ssa-loop-manip.c (create_iv): Likewise.
2982         (add_exit_phis_edge): Likewise.
2983         (split_loop_exit_edge): Likewise.
2984         (copy_phi_node_args): Likewise.
2985         (tree_transform_and_unroll_loop): Likewise.
2986         * value-prof.c (gimple_ic): Likewise.
2987         (gimple_stringop_fixed_value): Likewise.
2988         * tree-tailcall.c (add_successor_phi_arg): Likewise.
2989         (eliminate_tail_call): Likewise.
2990         (create_tailcall_accumulator): Likewise.
2991         (tree_optimize_tail_calls_1): Likewise.
2992         * tree-phinodes.c (add_phi_arg): Likewise.
2993         (make_phi_node): Likewise.
2994         (resize_phi_node): Likewise.
2995         (remove_phi_arg_num): Likewise.
2996         * omp-low.c (expand_parallel_call): Likewise.
2997         (expand_omp_for_static_chunk): Likewise.
2998         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
2999         Likewise.
3000         (slpeel_update_phi_nodes_for_guard1): Likewise.
3001         (slpeel_update_phi_nodes_for_guard2): Likewise.
3002         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
3003         (set_prologue_iterations): Likewise.
3004         (slpeel_tree_peel_loop_to_edge): Likewise.
3005         (vect_loop_versioning): Likewise.
3006         * tree-parloops.c (create_phi_for_local_result): Likewise.
3007         (transform_to_exit_first_loop): Likewise.
3008         (create_parallel_loop): Likewise.
3009         * ipa-split.c (split_function): Likewise.
3010         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
3011         (vect_create_epilog_for_reduction): Likewise.
3012         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
3013         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
3014         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
3015         (cond_if_else_store_replacement_1): Likewise.
3016         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
3017         (remove_forwarder_block_with_phi): Likewise.
3018         * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
3019         * tree-predcom.c (initialize_root_vars): Likewise.
3020         (initialize_root_vars_lm): Likewise.
3021         * sese.c (sese_add_exit_phis_edge): Likewise.
3022         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
3023         * tree-ssa.c (flush_pending_stmts): Likewise.
3024         (redirect_edge_var_map_add): Likewise.
3025         (ssa_redirect_edge): Likewise.
3026         * gimple-streamer-in.c (input_phi): Likewise.
3027         * tree-vect-stmts.c (vectorizable_load): Likewise.
3028         * tree-inline.c (copy_phis_for_bb): Likewise.
3029         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
3030         * tree-switch-conversion.c (fix_phi_nodes): Likewise.
3031         * tree-cfg.c (reinstall_phi_args): Likewise.
3032         (gimple_make_forwarder_block): Likewise.
3033         (add_phi_args_after_copy_edge): Likewise.
3034         (gimple_duplicate_sese_tail): Likewise.
3036 2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
3038         * config/i386/i386.md (stack_protect_set): Disable the pattern
3039         for Android since Android libc (bionic) does not provide random
3040         value for stack protection guard at gs:0x14. Guard value
3041         will be provided from external symbol (default implementation).
3042         (stack_protect_set_<mode>): Likewise.
3043         (stack_protect_test): Likewise.
3044         (stack_protect_test_<mode>): Likewise.
3046 2012-07-16  Hans-Peter Nilsson  <hp@axis.com>
3048         * config/cris/cris-protos.h (cris_legitimate_address_p): Declare.
3049         * config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of
3050         CONSTANT_P and cris_legitimate_address_p.
3051         * config/cris/cris.c (cris_legitimate_address_p): Make non-static.
3052         (cris_preferred_reload_class): Don't return GENERAL_REGS as
3053         preferred to MOF_SRP_REGS.
3055         * config/cris/cris.c (cris_init_libfuncs): Handle initialization
3056         of library functions for basic atomic compare-and-swap.
3057         * config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro.
3058         * config/cris/cris.opt (munaligned-atomic-may-use-library): New option.
3059         * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>")
3060         ("cris_atomic_fetch_<atomic_op_name><mode>_1")
3061         ("atomic_compare_and_swap<mode>")
3062         ("cris_atomic_compare_and_swap<mode>_1"): Make conditional on
3063         TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte.
3064         * config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases.
3065         * config/cris/sync.md (atomic_op_op_cnstr): New code_attr.
3066         (atomic_op_op_pred): Ditto.
3067         (atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to
3068         reflect the change to include %2 in expansion.  All callers changed.
3069         (qm3): New mode_attr.
3070         ("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred>
3071         as predicate for operand 2.
3072         ("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME.  Use
3073         "<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and
3074         constraint for operand 2.
3075         ("atomic_compare_and_swap<mode>"): Add FIXME.  Change predicate to
3076         nonmemory_operand for operand 3.
3077         ("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to
3078         exclude memory.  Improve emitted sync code for v10 and v32.  Use
3079         <qm3> instead of <m> for size designator for cmp.
3080         ("atomic_compare_and_swap<mode>"): Change predicate to
3081         nonmemory_operand for operand 3.  Add FIXME.
3082         ("cris_atomic_compare_and_swap<mode>_1"): Change predicates and
3083         constraints for operand 3 to exclude memory.
3084         ("atomic_fetch_<atomic_op_name><mode>")
3085         ("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence
3086         calls on result of call to need_atomic_barrier_p.
3088 2012-07-15  Richard Sandiford  <rdsandiford@googlemail.com>
3090         * config/mips/mips.md (move_type): Replace mfhilo and mthilo
3091         with mflo and mtlo.
3092         (type): Split mfhilo into mfhi and mflo.  Split mthilo into mthi
3093         and mtlo.  Adjust move_type->type mapping.
3094         (may_clobber_hilo): Split mthilo into mthi and mtlo.
3095         (*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16)
3096         (*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal)
3097         (*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo
3098         instead of mthilo and mfhilo.
3099         (mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo.
3100         (mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo.
3101         * config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w)
3102         (mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip):
3103         Use mflo instead of mfhilo.
3104         * config/mips/10000.md (r10k_arith): Split mthilo.
3105         (r10k_mfhi, r10k_mflo): Use mfhi and mflo directly.
3106         * config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise.
3107         (ir_sb1_mthilo): Split mthilo into mthi and mtlo.
3108         * config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split
3109         mthilo and mfhilo.
3110         * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
3111         * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
3112         Likewise.
3113         * config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise.
3114         * config/mips/5400.md (ir_vr54_hilo): Likewise.
3115         * config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise.
3116         * config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise.
3117         * config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise.
3118         * config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise.
3119         * config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise.
3120         * config/mips/generic.md (generic_hilo): Likewise.
3121         * config/mips/loongson2ef.md (ls2_alu): Likewise.
3122         * config/mips/loongson3a.md (ls3a_mfhilo): Likewise.
3123         * config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2)
3124         (octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise.
3125         * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
3126         * config/mips/xlr.md (xlr_hilo): Likewise.
3128 2012-07-14  Andrew Stubbs  <ams@codesourcery.com>
3129             Sandra Loosemore  <sandra@codesourcery.com>
3131         * config/sh/sh.h (SH_ASM_SPEC): Add spaces between options.
3133 2012-07-14  Uros Bizjak  <ubizjak@gmail.com>
3135         * config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode
3136         for TARGET_SSE.
3138 2012-07-14  Steven Bosscher  <steven@gcc.gnu.org>
3140         * toplev.c (init_asm_output): Open asm_out_file in 'w' mode.
3142 2012-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>
3144         PR bootstrap/53955
3145         * config/spu/spu.c (spu_init_cost): Mark static.
3146         (spu_add_stmt_cost): Likewise.
3147         (spu_finish_cost): Likewise.
3148         (spu_destroy_cost_data): Likewise.
3149         * config/i386/i386.c (ix86_init_cost): Mark static.
3150         (ix86_add_stmt_cost): Likewise.
3151         (ix86_finish_cost): Likewise.
3152         (ix86_destroy_cost_data): Likewise.
3153         * config/rs6000/rs6000.c (rs6000_init_cost): Mark static.
3154         (rs6000_add_stmt_cost): Likewise.
3155         (rs6000_finish_cost): Likewise.
3156         (rs6000_destroy_cost_data): Likewise.
3158 2012-07-13  Steven Bosscher  <steven@gcc.gnu.org>
3160         * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
3161         ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
3162         ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
3163         ATTRIBUTE_MALLOC.
3164         * alloc-pool.h (pool_alloc): Likewise.
3166         * final.c (final): Do not loop to find max_uid.
3168 2012-07-13  Steven Bosscher  <steven@gcc.gnu.org>
3170         * emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
3171         * rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes.
3173 2012-07-13  Richard Guenther  <rguenther@suse.de>
3175         PR tree-optimization/53907
3176         * tree-ssa-forwprop.c (associate_pointerplus): New function.
3177         (ssa_forward_propagate_and_combine): Call it.
3179 2012-07-13  Richard Guenther  <rguenther@suse.de>
3181         PR tree-optimization/53922
3182         * tree-vrp.c (value_inside_range): Change prototype to take
3183         min/max instead of value-range.
3184         (range_includes_zero_p): Likewise.  Return the result from
3185         value_inside_range.
3186         (extract_range_from_binary_expr_1): Adjust to handle dont-know
3187         return value from range_includes_zero_p.
3188         (extract_range_from_unary_expr_1): Likewise.
3189         (compare_range_with_value): Likewise.
3190         (vrp_meet_1): Likewise.
3192 2012-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>
3194         * doc/tm.texi: Regenerate.
3195         * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook.
3196         (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
3197         (TARGET_VECTORIZE_FINISH_COST): Likewise.
3198         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
3199         * targhooks.c (default_init_cost): New function.
3200         (default_add_stmt_cost): Likewise.
3201         (default_finish_cost): Likewise.
3202         (default_destroy_cost_data): Likewise.
3203         * targhooks.h (default_init_cost): New decl.
3204         (default_add_stmt_cost): Likewise.
3205         (default_finish_cost): Likewise.
3206         (default_destroy_cost_data): Likewise.
3207         * target.def (init_cost): New DEFHOOK.
3208         (add_stmt_cost): Likewise.
3209         (finish_cost): Likewise.
3210         (destroy_cost_data): Likewise.
3211         * target.h (struct _stmt_vec_info): New extern decl.
3212         (stmt_vectype): Likewise.
3213         (stmt_in_inner_loop_p): Likewise.
3214         * tree-vectorizer.h (stmt_info_for_cost): New struct/typedef.
3215         (stmt_vector_for_cost): New VEC/typedef.
3216         (add_stmt_info_to_vec): New function.
3217         (struct _slp_tree): Remove cost.inside_of_loop field.
3218         (struct _slp_instance): Remove cost.inside_of_loop field; add
3219         stmt_cost_vec field.
3220         (SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro.
3221         (SLP_INSTANCE_STMT_COST_VEC): New accessor macro.
3222         (SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro.
3223         (struct _vect_peel_extended_info): Add stmt_cost_vec field.
3224         (struct _loop_vec_info): Add target_cost_data field.
3225         (LOOP_VINFO_TARGET_COST_DATA): New accessor macro.
3226         (struct _bb_vec_info): Add target_cost_data field.
3227         (BB_VINFO_TARGET_COST_DATA): New accessor macro.
3228         (struct _stmt_vec_info): Remove cost.inside_of_loop field.
3229         (STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro.
3230         (stmt_vinfo_set_inside_of_loop_cost): Remove function.
3231         (init_cost): New function.
3232         (add_stmt_cost): Likewise.
3233         (finish_cost): Likewise.
3234         (destroy_cost_data): Likewise.
3235         (vect_model_simple_cost): Change parameter list.
3236         (vect_model_store_cost): Likewise.
3237         (vect_model_load_cost): Likewise.
3238         (record_stmt_cost): New extern decl.
3239         (vect_get_load_cost): Change parameter list.
3240         (vect_get_store_cost): Likewise.
3241         * tree-vect-loop.c (new_loop_vec_info): Call init_cost.
3242         (destroy_loop_vec_info): Call destroy_cost_data.
3243         (vect_estimate_min_profitable_iters): Remove old calculation of
3244         inside costs; call finish_cost instead.
3245         (vect_model_reduction_cost): Call add_stmt_cost instead of old
3246         inside-costs calculation.
3247         (vect_model_induction_cost): Likewise.
3248         * tree-vect-data-refs.c (vect_get_data_access_cost): Change to
3249         return a stmt_vector_for_cost; modify calls to vect_get_load_cost
3250         and vect_get_store_cost to obtain the value to return.
3251         (vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from
3252         vect_get_data_access_cost and store it in the minimum peeling
3253         structure.
3254         (vect_peeling_hash_choose_best_peeling): Change the parameter list
3255         to add a (stmt_vector_for_cost *) output parameter, and set its value.
3256         (vect_enhance_data_refs_alignment): Ignore the new return value from
3257         calls to vect_get_data_access_cost; obtain stmt_cost_vec from
3258         vect_peeling_hash_choose_best_peeling and pass its contents to the
3259         target cost model.
3260         * tree-vect-stmts.c (stmt_vectype): New function.
3261         (stmt_in_inner_loop_p): Likewise.
3262         (record_stmt_cost): Likewise.
3263         (vect_model_simple_cost): Add stmt_cost_vec parameter; call
3264         record_stmt_cost instead of old calculation; don't call
3265         stmt_vinfo_set_inside_of_loop_cost.
3266         (vect_model_promotion_demotion_cost): Call add_stmt_cost instead of
3267         old calculation; don't call stmt_vinfo_set_inside_of_loop_cost.
3268         (vect_model_store_cost): Add stmt_cost_vec parameter; call
3269         record_stmt_cost instead of old calculation; add stmt_cost_vec
3270         parameter to vect_get_store_cost call; don't call
3271         stmt_vinfo_set_inside_of_loop_cost.
3272         (vect_get_store_cost): Add stmt_cost_vec parameter; call
3273         record_stmt_cost instead of old calculation.
3274         (vect_model_load_cost): Add stmt_cost_vec parameter; call
3275         record_stmt_cost instead of old calculation; add stmt_cost_vec
3276         parameter to vect_get_load_cost call; don't call
3277         stmt_vinfo_set_inside_of_loop_cost.
3278         (vect_get_load_cost): Add stmt_cost_vec parameter; call
3279         record_stmt_cost instead of old calculation.
3280         (vectorizable_call): Add NULL parameter to vect_model_simple_cost call.
3281         (vectorizable_conversion): Likewise.
3282         (vectorizable_assignment): Likewise.
3283         (vectorizable_shift): Likewise.
3284         (vectorizable_operation): Likewise.
3285         (vectorizable_store): Add NULL parameter to vect_model_store_cost call.
3286         (vectorizable_load): Add NULL parameter to vect_model_load_cost call.
3287         (new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST.
3288         * config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def.
3289         (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
3290         (TARGET_VECTORIZE_FINISH_COST): Likewise.
3291         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
3292         (spu_init_cost): New function.
3293         (spu_add_stmt_cost): Likewise.
3294         (spu_finish_cost): Likewise.
3295         (spu_destroy_cost_data): Likewise.
3296         * config/i386/i386.c (ix86_init_cost): New function.
3297         (ix86_add_stmt_cost): Likewise.
3298         (ix86_finish_cost): Likewise.
3299         (ix86_destroy_cost_data): Likewise.
3300         (TARGET_VECTORIZE_INIT_COST): New macro def.
3301         (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
3302         (TARGET_VECTORIZE_FINISH_COST): Likewise.
3303         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
3304         * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def.
3305         (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
3306         (TARGET_VECTORIZE_FINISH_COST): Likewise.
3307         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
3308         (rs6000_init_cost): New function.
3309         (rs6000_add_stmt_cost): Likewise.
3310         (rs6000_finish_cost): Likewise.
3311         (rs6000_destroy_cost_data): Likewise.
3312         * tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec.
3313         (vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST.
3314         (vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add
3315         stmt_cost_vec parameter to vect_model_store_cost and
3316         vect_model_simple_cost calls.
3317         (vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec
3318         parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs,
3319         vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent
3320         calculating cost more than once for loads; remove inside_cost
3321         parameter from recursive vect_build_slp_tree calls; call
3322         record_stmt_cost instead of old calculation.
3323         (vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with
3324         the instance; free it on premature exit; remove inside_cost parameter
3325         from vect_build_slp_tree call; add stmt_cost_vec parameter to
3326         vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST.
3327         (new_bb_vec_info): Call init_cost.
3328         (destroy_bb_vec_info): Call destroy_cost_data.
3329         (vect_bb_vectorization_profitable_p): Call add_stmt_cost for each
3330         statement recorded with an SLP instance; call finish_cost instead of
3331         the old calculation.
3332         (vect_update_slp_costs_according_to_vf): Record statement costs from
3333         SLP instances, multiplying by the appropriate number of copies; don't
3334         update SLP_INSTANCE_INSIDE_OF_LOOP_COST.
3336 2012-07-13  Richard Guenther  <rguenther@suse.de>
3338         PR middle-end/53937
3339         * builtins.c (get_pointer_alignment_1): Handle constant
3340         pointers.
3342 2012-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
3343             Steven Bosscher  <steven@gcc.gnu.org>
3344             Bernd Schmidt  <bernds@codesourcery.com>
3346         PR rtl-optimization/53908
3347         * df-problems.c (can_move_insns_across): When doing
3348         memory-reference book-keeping, handle call insns.
3350 2012-07-13  Richard Guenther  <rguenther@suse.de>
3352         * gimple.c (gimple_types_compatible_p_1): Remove redundant
3353         type attribute comparisons.
3354         (gimple_canonical_types_compatible_p): Likewise.
3356 2012-07-12  Hans-Peter Nilsson  <hp@axis.com>
3358         PR rtl-optimization/53176
3359         * rtlanal.c (rtx_cost): Adjust default cost for X with a
3360         UNITS_PER_WORD factor for all X according to the size of
3361         its mode, not just for SUBREGs with untieable modes.
3362         Handle SET.  Use factor * factor for MULT, DIV, UDIV,
3363         MOD, UMOD.
3365 2012-07-12  Uros Bizjak  <ubizjak@gmail.com>
3367         * config/i386/i386.md (QImode and HImode cmove splitters): Merge
3368         QImode and HImode splitters.  Use ix86_comparison_operator.
3369         Explicitly match FLAGS_REG.
3370         (DFmode cmove splitter): Explicitly match FLAGS_REG.
3372 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
3374         * expr.h (can_move_by_pieces): Move prototype from here ...
3375         * tree.h (can_move_by_pieces): ... to here.
3376         * optabs.h (set_widening_optab_handler): Use XCNEW.
3377         * gimplify.c: Do not include expr.h.
3379         * toplev.c: Do not include dwarf2out.h.
3380         * config/ia64/ia64.c: Likewise.
3381         * config/sparc/sparc.c: Likewise.
3382         * config/sparc/t-sparc (sparc.o): Fix dependencies.
3384         * Makefile.in (toplev.o): Fix dependencies
3385         (c-family/c-gimplify.o): Likewise.
3386         (c-family/c-common.o): Likewise.
3388 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
3390         * basic-block.h (struct edge_def): Use basic_block instead of
3391         basic_block_def *.
3392         * cfgloop.h (struct loop_exit, struct loop): Likewise.
3393         * gengenrtl.c (type_from_format): Likewise.  Also for 'tree'
3394         instead of union tree_node *.
3395         * rtl.h (union rtunion_def, emit_insn_before_noloc,
3396         emit_insn_after_noloc, add_insn_before, add_insn_after,
3397         debug_bb_slim): Likewise.
3398         * tree-inline.h (struct copy_body_data): Likewise.
3399         * sched-rgn.c (dump_region_dot): Likewise.
3400         * gimple.h (struct gimple_statement_base, gimple_set_bb,
3401         gsi_move_to_bb_end): Likewise.
3402         * sched-vis.c (debug_bb_slim): Likewise.
3403         (debug_bb_n_slim): Likewise.
3404         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise.
3405         (mn10300_block_contains_call):
3407 2012-07-11  Greta Yorsh  <Greta.Yorsh@arm.com>
3409         PR target/53859
3410         * config/arm/arm.c (arm_early_load_addr_dep): Handle new
3411         epilogue patterns.
3413 2012-07-11  Jonathan Wakely  <jwakely.gcc@gmail.com>
3415         * doc/extend.texi (Namespace Association): Alter cautionary text.
3417 2012-07-10  Oleg Endo  <olegendo@gcc.gnu.org>
3419         PR target/53911
3420         * config/sh/sh.md: Remove displacement addresssing related splits.
3422 2012-07-10  Xinliang David Li  <davidxl@google.com>
3424         * doc/invoke.texi: New option documented.
3425         * flag-types.h: New enum type.
3426         * gimplify.c (gimplify_bind_expr): Control
3427         clobber generation with new option.
3428         (gimplify_target_expr): Ditto.
3429         * common.opt: New option.
3431 2012-07-10  Julian Brown  <julian@codesourcery.com>
3433         * config/arm/arm.md (movsi): Don't split symbol refs here.
3434         (define_split): New.
3436 2012-07-10  Andreas Schwab  <schwab@linux-m68k.org>
3438         PR bootstrap/53913
3439         * config/m68k/m68k.c (m68k_epilogue_uses): New.
3440         * config/m68k/m68k.h (EPILOGUE_USES): Use it.
3441         * config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype.
3443 2012-07-10  Richard Henderson  <rth@redhat.com>
3445         * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
3446         * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
3447         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
3448         * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
3449         (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
3450         (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
3451         (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
3452         (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
3453         (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
3454         (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
3455         (bdesc_args): Remove entries to match.
3456         (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
3457         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
3458         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
3459         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
3460         (rs6000_builtin_mul_widen_odd): Remove.
3461         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
3462         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
3463         * config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
3464         (spu_builtin_mul_widen_odd): Remove.
3465         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
3466         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
3467         * doc/tm.texi.in: Don't document the removed hooks.
3469         * tree-vect-stmts.c (supportable_widening_operation): Expand
3470         WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible.
3472         * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
3473         (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
3474         * optabs.c (can_mult_highpart_p): New.
3475         (expand_mult_highpart): New.
3476         * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
3477         * tree-vect-generic.c (expand_vector_operations_1): Don't expand
3478         by pieces if can_mult_highpart_p.
3479         (expand_vector_divmod): Use can_mult_highpart_p and always
3480         generate MULT_HIGHPART_EXPR.
3481         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
3482         * tree-vect-stmts.c (vectorizable_operation): Likewise.
3484         * config/spu/spu-builtins.md (spu_mpy): Move to spu.md.
3485         (spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise.
3486         * config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy.
3487         (vec_widen_umult_odd_v8hi): Rename from spu_mpyu.
3488         (vec_widen_smult_even_v8hi): Rename from spu_mpyhh.
3489         (vec_widen_umult_even_v8hi): Rename from spu_mpyhhu.
3490         * config/spu/spu-builtins.def: Update pattern names to match.
3492         * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename
3493         from altivec_vmuleub.
3494         (vec_widen_smult_even_v16qi): Rename from altivec_vmulesb.
3495         (vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh.
3496         (vec_widen_smult_even_v8hi): Rename from altivec_vmulesh.
3497         (vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub.
3498         (vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb.
3499         (vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh.
3500         (vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh.
3501         * config/rs6000/rs6000-builtin.def: Update pattern names to match.
3503         * config/i386/sse.md (vec_widen_umult_even_v8si): Rename from
3504         avx2_umulv4siv4di3.
3505         (vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3.
3506         (vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3.
3507         (mulv4si3): Remove XOP test shadowed by SSE4 test.
3508         * config/i386/i386.c (bdesc_args): Update pattern names.
3509         (ix86_expand_sse2_mulvxdi3): Likewise.
3510         (ix86_expand_mul_widen_evenodd): Likewise.  Remove XOP test
3511         shadowed by SSE4 test.
3513         * tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New.
3514         * cfgexpand.c (expand_debug_expr): Handle them.
3515         * expr.c (expand_expr_real_2): Likewise.
3516         * fold-const.c (fold_binary_loc): Likewise.
3517         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
3518         * optabs.c (optab_for_tree_code): Likewise.
3519         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
3520         * tree-inline.c (estimate_operator_cost): Likewise.
3521         * tree-pretty-print.c (dump_generic_node): Likewise.
3522         * tree.c (commutative_tree_code): Likewise.
3523         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
3524         Handle type change before looking up optab.
3525         * optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New.
3526         (OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New.
3527         (vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New.
3528         (vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New.
3529         * genopinit.c (optabs): Initialize them.
3530         * doc/md.texi: Document them.
3532 2012-07-10  Dehao Chen  <dehao@google.com>
3534         * tree.h (phi_arg_d): New field.
3535         * tree-flow-inline.h (gimple_phi_arg_block): New function.
3536         (gimple_phi_arg_block_from_edge): New function.
3537         (gimple_phi_arg_set_block): New function.
3538         (gimple_phi_arg_has_block): New function.
3539         (redirect_edge_var_map_block): New function.
3540         * tree-flow.h (_edge_var_map): New field.
3541         * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
3542         * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
3543         redirect_edge_var_map_add.
3544         * tree-outof-ssa.c (_elim_graph): New field.
3545         (insert_partition_copy_on_edge): New parameter.
3546         (insert_value_copy_on_edge): New parameter.
3547         (insert_rtx_to_part_on_edge): New parameter.
3548         (insert_part_to_rtx_on_edge): New parameter.
3549         (elim_graph_add_edge): New parameter.
3550         (elim_graph_remove_succ_edge): New parameter.
3551         (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
3552         (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
3553         (new_elim_graph): Add block debug info.
3554         (clear_elim_graph): Likewise.
3555         (delete_elim_graph): Likewise.
3556         (elim_graph_add_node): Likewise.
3557         (elim_graph_add_edge): Likewise.
3558         (elim_graph_remove_succ_edge): Likewise.
3559         (eliminate_build): Likewise.
3560         (elim_forward): Likewise.
3561         (elim_unvisited_predecessor): Likewise.
3562         (elim_backward): Likewise.
3563         (elim_create): Likewise.
3564         (eliminate_phi): Likewise.
3565         (insert_backedge_copies): Likewise.
3566         * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
3567         add_phi_arg.
3568         (rewrite_add_phi_arguments): Likewise.
3569         * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
3570         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
3571         * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
3572         * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
3573         * tree-ssa-loop-manip.c (create_iv): Likewise.
3574         (add_exit_phis_edge): Likewise.
3575         (split_loop_exit_edge): Likewise.
3576         (copy_phi_node_args): Likewise.
3577         (tree_transform_and_unroll_loop): Likewise.
3578         * value-prof.c (gimple_ic): Likewise.
3579         (gimple_stringop_fixed_value): Likewise.
3580         * tree-tailcall.c (add_successor_phi_arg): Likewise.
3581         (eliminate_tail_call): Likewise.
3582         (create_tailcall_accumulator): Likewise.
3583         (tree_optimize_tail_calls_1): Likewise.
3584         * tree-phinodes.c (add_phi_arg): Likewise.
3585         (make_phi_node): Likewise.
3586         (resize_phi_node): Likewise.
3587         (remove_phi_arg_num): Likewise.
3588         * omp-low.c (expand_parallel_call): Likewise.
3589         (expand_omp_for_static_chunk): Likewise.
3590         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
3591         Likewise.
3592         (slpeel_update_phi_nodes_for_guard1): Likewise.
3593         (slpeel_update_phi_nodes_for_guard2): Likewise.
3594         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
3595         (set_prologue_iterations): Likewise.
3596         (slpeel_tree_peel_loop_to_edge): Likewise.
3597         (vect_loop_versioning): Likewise.
3598         * tree-parloops.c (create_phi_for_local_result): Likewise.
3599         (transform_to_exit_first_loop): Likewise.
3600         (create_parallel_loop): Likewise.
3601         * ipa-split.c (split_function): Likewise.
3602         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
3603         (vect_create_epilog_for_reduction): Likewise.
3604         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
3605         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
3606         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
3607         (cond_if_else_store_replacement_1): Likewise.
3608         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
3609         (remove_forwarder_block_with_phi): Likewise.
3610         * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
3611         * tree-predcom.c (initialize_root_vars): Likewise.
3612         (initialize_root_vars_lm): Likewise.
3613         * sese.c (sese_add_exit_phis_edge): Likewise.
3614         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
3615         * tree-ssa.c (flush_pending_stmts): Likewise.
3616         (redirect_edge_var_map_add): Likewise.
3617         (ssa_redirect_edge): Likewise.
3618         * gimple-streamer-in.c (input_phi): Likewise.
3619         * tree-vect-stmts.c (vectorizable_load): Likewise.
3620         * tree-inline.c (copy_phis_for_bb): Likewise.
3621         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
3622         * tree-switch-conversion.c (fix_phi_nodes): Likewise.
3623         * tree-cfg.c (reinstall_phi_args): Likewise.
3624         (gimple_make_forwarder_block): Likewise.
3625         (add_phi_args_after_copy_edge): Likewise.
3626         (gimple_duplicate_sese_tail): Likewise.
3628 2012-07-09  Oleg Endo  <olegendo@gcc.gnu.org>
3630         PR target/53886
3631         * config/sh/sh.c (sequence_insn_p): New function.
3632         (find_barrier, sh_insn_length_adjustment): Use it.
3634 2012-07-09  Iain Sandoe  <iain@codesourcery.com>
3636         PR target/53283
3637         * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
3638         if defined.
3639         * config/darwin.h: Rename TARGET_FOLD_BUILTIN to
3640         SUBTARGET_FOLD_BUILTIN.
3641         * config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
3642         SUBTARGET_FOLD_BUILTIN.
3644 2012-07-09  Iain Sandoe  <iain@codesourcery.com>
3646         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT
3647         runtime exceptions model setting from here ...
3648         * config/darwin.c (darwin_override_options): ... to here.
3650 2012-07-09  Steven Bosscher  <steven@gcc.gnu.org>
3652         PR tree-optimization/53887
3653         * tree-cfg.c (group_case_labels_stmt): Make non-static.
3654         * tree-flow.h (group_case_labels_stmt): Add prototype.
3655         * tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
3656         to pre-process every switch.
3658 2012-07-09  Jason Merrill  <jason@redhat.com>
3660         PR c++/53882
3661         * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
3662         (type_hash_eq): Likewise.
3664 2012-07-09  Tom de Vries  <tom@codesourcery.com>
3665             Richard Guenther  <rguenther@suse.de>
3667         * tree-ssa-ccp.c (optimize_unreachable): New function.
3668         (execute_fold_all_builtins): Use optimize_unreachable to optimize
3669         BUILT_IN_UNREACHABLE.  Don't optimize after BUILT_IN_UNREACHABLE.
3671 2012-07-09  Richard Guenther  <rguenther@suse.de>
3673         PR bootstrap/53898
3674         * graphite-optimize-isl.c: Make sure CU is not empty.
3676 2012-07-09  Steven Bosscher  <steven@gcc.gnu.org>
3678         * gensupport.c (init_rtx_reader_args_cb): Start counting code
3679         generating patterns from 1 to free up 0 for CODE_FOR_nothing.
3680         * gencodes.c (main): Give CODE_FOR_nothing the value 0.  Add
3681         the LAST_INSN_CODE marker at the end.
3682         * genoutput.c (nothing): New static struct data.
3683         (idata): Initialize to &nothing.
3684         (idata_end): Initialize to &nothing.next.
3685         (init_insn_for_nothing): New function to create dummy 'nothing' insn.
3686         (main): Use it.
3687         * genpeep.c (insn_code_number): Remove global variable.
3688         (gen_peephole): Take it as an argument instead.
3689         (main): Take insn_code_number from read_md_rtx.
3690         * optabs.h: Revert r161809:
3691         (optab_handlers): Change type of insn_code back to insn_code.
3692         (optab_handler, widening_optab_handler, set_optab_handler,
3693         set_widening_optab_handler, convert_optab_handler,
3694         set_convert_optab_handler, direct_optab_handler,
3695         set_direct_optab_handler): Remove int casts.
3696         Revert to treating the insn_code field as "insn_code".
3698 2012-07-08  Oleg Endo  <olegendo@gcc.gnu.org>
3700         * config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
3701         * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
3702         * config/sh/sh-protos.h: Declare it.
3704 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
3706         * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
3707         (dump_fixup_graph): Use current_function_name.
3708         (adjust_cfg_counts): Likewise.
3709         * ira-conflicts.c: Do not include tree.h.
3710         (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
3712 2012-07-08  Oleg Endo  <olegendo@gcc.gnu.org>
3714         PR target/51244
3715         * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.
3717 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
3719         * basic-block.h: Re-group most prototypes per file.
3720         (struct edge_list): Remove num_blocks field.
3721         (dump_bb_info): Adjust prototypes.
3722         (dump_reg_info): Move prototype to regs.h.
3723         * function.h: Do not include tree.h.
3724         Include vec.h, vecir.h, input.h and machmode.h to compensate.
3725         (function_name): New prototype.
3726         * gimple.h: Include tree.h to compensate for basic-block.h change.
3727         * langhooks.h: Note that tree.h is only necessary for enum tree_code.
3728         * regs.h (dump_reg_info): Prototype here.
3729         * regset.h: Adjust file reference in comment.
3730         (debug_regset): Remove prototype.
3731         * rtl.h: Include flags.h for flag_var_tracking_assignments.
3732         (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
3733         instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
3734         (dump_reg_info, dump_flow_info): Remove prototypes.
3735         * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
3736         to here, the only user.  Make static.
3737         (reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
3738         * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
3739         flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
3740         tree-pass.h, cfgloop.h, and tree-flow.h.
3741         Include basic-block.h, the first header I'd expect to be included.
3742         (reg_obstack): Move to df-core.c.
3743         (free_edge): Remove bogus ATTRIBUTE_UNUSED.
3744         (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
3745         (redirect_edge_succ_nodup): Move to cfghooks.c.
3746         (dump_regset, debug_regset): Move to df-core.c.
3747         (dump_bb_info): Move to cfgrtl.c.
3748         (dump_reg_info): Move to regstat.c.
3749         (dump_flow_info): Move to cfgrtl.c.
3750         (debug_flow_info): Likewise.
3751         (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
3752         * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
3753         insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
3754         (flow_active_insn_p, forwarder_block_p, can_fallthru,
3755         could_fall_through): Move to cfgrtl.c.
3756         (set_edge_can_fallthru_flag): Moved to bb-reorder.c.
3757         (create_edge_list): Do not set edge_list's removed num_blocks.
3758         (print_edge_list): Look at n_basic_blocks instead of num_blocks.
3759         (flow_nodes_print): Remove.
3760         (flow_edge_list_print): Remove.
3761         (inverted_post_order_compute): Use FOR_ALL_BB.
3762         * cfgrtl.c (dump_flow_info): Moved from cfg.c.
3763         Do not call dump_reg_info.
3764         (debug_flow_info): Moved from cfg.c
3765         (dump_bb_info): Moved from cfg.c.  Take 'verbose' argument
3766         to avoid looking at TDF_* flags from tree-pass.h.
3767         (flow_active_insn_p, forwarder_block_p, can_fallthru,
3768         could_fall_through): Moved from cfganal.c.
3769         (print_rtl_with_bb): Adjust dump_bb_info calls.
3770         * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
3771         (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
3772         (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
3773         * cselib.c: Include tree.h with a FIXME.
3774         * df-core.c (reg_obstack): Moved from cfg.c.
3775         (dump_regset): Likewise.
3776         (debug_regset): Likewise.  Make a DEBUG_FUNCTION.
3777         * final.c (compute_alignments): Call dump_reg_info before
3778         dump_flow_info.
3779         * function.c (function_name): New function.
3780         (current_function_name): Use it.
3781         * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
3782         dump_flow_info.
3783         * ira-conflicts.c: Include tree.h with a note.
3784         * regstat.c (dump_reg_info): Moved here from cfg.c.
3785         * loop-init.c: Include regs.h instead of hard-reg-set.h.
3786         (rtl_loop_init): Call dump_reg_info before dump_flow_info.
3787         (rtl_loop_done): Likewise.
3788         * mcf.c: Include tree.h before langhooks.h.
3789         * predict.c (maybe_hot_count_p): Assert we have cfun.
3790         (probably_never_executed_bb_p): Likewise.
3791         * profile.c (compute_branch_probabilities): Use gimple_dump_cfg
3792         instead of dump_flow_info.
3793         * sched-deps.c: Include tree.h with a FIXME.
3794         (call_may_noreturn_p): Add FIXME note why this function has to
3795         look at function decls instead of function decl flags.
3796         * sched-vis.c: Include tree.h with a FIXME.
3797         (print_rtl_slim): Adjust dump_bb_info uses.
3798         * statistics.c (statistics_fini_pass_2): Use current_function_name
3799         to avoid including tree.h.
3800         (statistics_counter_event): Use function_name for the same reason.
3801         (statistics_histogram_event): Likewise.
3802         * tracer.c (tracer): Remove bogus gcc_assert.  Use brief_dump_cfg
3803         instead of dump_flow_info.
3804         * var-tracking.c (variable_tracking_main_1): Call dump_reg_info
3805         before dump_flow_info.
3806         * doc/cfg.texi: Update CFG documentation.
3807         * Makefile.in (RTL_H): Depend on FLAGS_H.
3808         (GIMPLE_H): Depend on TREE_H.
3809         (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
3810         but no longer on TREE_H.
3811         (C_COMMON_H): Depend on TREE_H.
3812         (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
3813         sched-deps.o, sched-vis.o): Fixup dependencies.
3815 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
3817         * alias.h: Do not include coretypes.h in header files.
3818         * cppbuiltin.h: Likewise.
3819         * double-int.h: Likewise.
3820         * gimple-fold.h: Likewise.
3821         * flags.h: Likewise.
3822         * tree-ssa-alias.h: Likewise.
3823         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
3824         OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
3825         * Makefile.in (RTL_BASE_H): Depend on coretypes.h.
3826         (TREE_H): Likewise.
3827         (ALIAS_H): Do not depend on coretypes.h.
3828         (FLAGS_H): Likewise.
3829         (realmpfr.o): Depend on coretypes.h.
3831 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
3833         * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
3834         gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.
3836 2012-07-07  Richard Earnshaw  <rearnsha@arm.com>
3838         * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
3839         (TARGET_FPA): Delete definition.
3840         (TARGET_MAVERICK): Likewise.
3841         (TARGET_FPA_EMU2): Likewise.
3842         (arm_fp_model): Remove FPA and Maverick models.
3843         (arm_arch_cirrus): Delete declaration.
3844         (FLOAT_WORDS_BIG_ENDIAN): Delete definition.
3845         (FIXED_REGISTERS): Remove FPA and Maverick support.  Reorganize.
3846         (CALL_USED_REGISTERS): Likewise.
3847         (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
3848         (FIRST_VFP_REGNUM): Renumbered.
3849         (D7_VFP_REGNUM): Chain definition.
3850         (LAST_LO_VFP_REGNUM): Likewise.
3851         (FIRST_HI_VFP_REGNUM): Likewise.
3852         (LAST_HI_VFP_REGNUM): Likewise.
3853         (FIRST_IWMMXT_GR_REGNUM): Likewise.
3854         (LAST_IWMMXT_GR_REGNUM): Likewise.
3855         (FIRST_IWMMXT_REGNUM): Likewise.
3856         (LAST_IWMMXT_REGNUM): Likewise.
3857         (FRAME_POINTER_REGNUM): Renumbered.
3858         (ARG_POINTER_REGNUM): Renumbered.
3859         (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
3860         (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
3861         (HARD_REGNO_REGNUM): Remove FPA support.
3862         (REG_ALLOC_ORDER): Remove FPA and Maverick registers.  Reorganize.
3863         (reg_class): Likewise.
3864         (REG_CLASS_NAMES): Likewise.
3865         (REG_CLASS_CONTENTS): Likewise.
3866         (CANNOT_CHANGE_MODE_CLASS): Never true.  Update comment.
3867         (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
3868         (CLASS_MAX_NREGS): Remove FPA and Maverick support.
3869         * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
3870         Reorganize.  Use AAPCS preferred names.
3871         (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick.  Update
3872         comments.
3873         (OVERLAPPING_REGISTER_NAMES): Update register numbering.
3874         * arm.c (FL_CIRRUS): Delete definition.
3875         (arm_arch_cirrus): Delete variable.
3876         (arm_float_words_big_endian): Delete function.
3877         (cirrus_memory_offset): Delete function.
3878         (output_mov_long_double_fpa_from_arm): Delete function.
3879         (output_mov_long_double_arm_from_fpa): Delete function.
3880         (output_mov_double_fpa_from_arm): Delete function.
3881         (output_mov_double_arm_from_fpa): Delete function.
3882         (emit_sfm): Delete function.
3883         (maybe_get_arm_condition_code): Update comment.
3884         (arm_file_start): Always use softvfp for softfloat systems.
3885         (thumb_core_reg_alloc_order): Adjust for updated register allocation.
3886         (arm_option_override): Remove FPA and Maverick support.  Always
3887         default to vfp as the fallback FPU format.
3888         (use_return_insn): Remove FPA support.
3889         (arm_get_frame_offsets): Likewise.
3890         (arm_save_coproc_regs): Likewise.
3891         (arm_canonicalize_comparison): Remove Maverick support.
3892         (arm_select_cc_mode): Likewise.
3893         (arm_gen_compare_reg): Likewise.
3894         (arm_print_operand): Likewise.
3895         (arm_libcall_value_1): Remove FPA and Maverick support.
3896         (arm_function_value_regno_p): Likewise.
3897         (arm_apply_result_size): Likewise.
3898         (arm_legitimate_index_p): Likewise.
3899         (thumb2_legitimate_index_p): Likewise.
3900         (legitimize_reload_address): Likewise.
3901         (arm_register_move_cost): Likewise.
3902         (arm_hard_regno_mode_ok): Likewise.
3903         (arm_regno_class): Likewise.
3904         (arm_dbx_register_number): Likewise.
3905         (arm_emit_unwind_sequence): Likewise.
3906         (arm_conditional_register_usage): Likewise.
3907         * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
3908         (cirrus_memory_offset): Likewise.
3909         (output_move_long_double_fpa_from_arm): Likewise.
3910         (output_move_long_double_arm_from_fpa): Likewise.
3911         (output_move_double_fpa_from_arm): Likewise.
3912         (output_move_double_arm_from_fpa): Likewise.
3913         (arm_float_words_big_endian): Likewise.
3914         * arm.md (CC_REGNUM): Renumbered.
3915         (VFPCC_REGNUM): Moved here.  Renumbered.
3916         (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
3917         (attr fpu): Remove FPA and Maverick support.
3918         * vfp.md (VFPCC_REGNUM): Delete.  Moved to arm.md.
3919         * arm-cores.def (ep9312): Remove Maverick support.
3920         * arm-arches.def (ep9312): Delete architecture.
3921         * arm-tables.opt: Regenerated.
3923         * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.
3925 2012-07-07  Steven Bosscher  <steven@gcc.gnu.org>
3927         PR tree-optimization/53881
3928         * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
3929         comparing labels to establish uniqueness of a switch case target,
3930         use the CFG instead.
3932 2012-07-07  Ulrich Weigand  <ulrich.weigand@linaro.org>
3934         * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
3935         due to negative shift amount.
3937 2012-07-07  Hans-Peter Nilsson  <hp@axis.com>
3939         Fix configure test for "stack protector support in target C library".
3940         * configure.ac (test_prefix, test_exec_prefix): Move setting from
3941         inside sysroot handling to before and outside it.
3942         * configure: Regenerate.
3944 2012-07-06  Kai Tietz  <ktietz@redhat.com>
3946         PR bootstrap/52947
3947         * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
3948         as "/mingw/include".
3950 2012-07-06  Alexandre Oliva  <aoliva@redhat.com>
3952         PR debug/53820
3953         * var-tracking.c (vt_add_function_parameter): Convert
3954         internal_arg_pointer into arg_pointer-based address even
3955         without DRAP.
3957 2012-07-06  Alexandre Oilva  <aoliva@redhat.com>
3959         PR rtl-optimization/53827
3960         PR debug/53671
3961         PR debug/49888
3962         * alias.c (memrefs_conflict_p): Adjust offset and size by the
3963         same amount for alignment ANDs.
3965 2012-07-06  Tom de Vries  <tom@codesourcery.com>
3967         PR tree-optimization/51879
3968         * tree-ssa-sccvn.c (copy_reference_ops_from_call)
3969         (visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
3970         (visit_use): Also call visit_reference_op_call for calls with a vdef.
3972 2012-07-06  Tom de Vries  <tom@codesourcery.com>
3974         PR tree-optimization/52009
3975         * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
3976         value numbers of gimple_vdef.
3977         * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
3978         prototype.
3979         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
3980         (vn_reference_insert): Add and handle vdef parameter.
3981         (visit_reference_op_load): Add argument to vn_reference_insert call.
3982         (visit_reference_op_store): Find value number of vdef of store.  Insert
3983         value number of vdef of store.
3985 2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
3987         * config/i386/i386.md (simple lea to add peephole): Also transform
3988         RTXes where second PLUS operand matches output.
3990 2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
3992         * config/i386/i386.c (construct_plt_address): Make static.
3993         * config/i386/i386-protos.h (construct_plt_address): Remove.
3995 2012-07-06  Nick Clifton  <nickc@redhat.com>
3997         * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
3998         default_encode_section_info.
4000 2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
4002         PR target/53853
4003         * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
4004         emit PIC sequence for fnaddr symbol reference in advance.
4006 2012-07-06  Eric Botcazou  <ebotcazou@adacore.com>
4008         Revert
4009         2012-06-14  Eric Botcazou  <ebotcazou@adacore.com>
4011         * dwarf2out.c (function_possibly_abstracted_p): New static function.
4012         (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
4013         cgraph_function_possibly_inlined_p.
4014         (gen_inlined_subroutine_die): Return if the origin is to be ignored.
4015         (process_scope_var): Do not emit concrete instances of abstracted
4016         nested functions from here.
4017         (gen_decl_die): Emit the abstract instance if the function is possibly
4018         abstracted and not only possibly inlined.
4019         (dwarf2out_finish): Find the first non-abstract parent instance and
4020         attach concrete instances on the limbo list to it.
4022 2012-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4023             Julian Brown  <julian@codesourcery.com>
4025         PR target/48941
4026         PR target/51980
4027         * config/arm/neon-gen.ml (return_by_ptr): Delete.
4028         (print_function): Handle empty strings.
4029         (return): Delete use of return_by_ptr.
4030         (mask_shape_for_shuffle): New function.
4031         (mask_elems): Likewise.
4032         (shuffle_fn): Likewise.
4033         (params): Simplify and remove use of return_by_ptr.
4034         (get_shuffle): New function.
4035         (print_variant): Update.
4036         * config/arm/neon.ml (rev_elems): New function.
4037         (permute_range): Likewise.
4038         (zip_range): Likewise.
4039         (uzip_range): Likewise.
4040         (trn_range): Likewise.
4041         (zip_elems): Likewise.
4042         (uzip_elems): Likewise.
4043         (trn_elems): Likewise.
4044         (features): New enumeration Use_shuffle. Delete ReturnPtr.
4045         (pf_su_8_16): New.
4046         (suf_32): New.
4047         (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
4048         * config/arm/arm_neon.h: Regenerate.
4050 2012-07-05  Richard Guenther  <rguenther@suse.de>
4052         * tree-pretty-print.c (dump_generic_node): Properly test
4053         the result of exact_log2.
4055 2012-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4057         * config/s390/s390-protos.h (s390_expand_movmem)
4058         (s390_expand_cmpmem): Add return value.
4059         * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
4060         Return FALSE to use the library function in some cases.
4061         * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
4062         helper functions.
4064 2012-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4066         * config.gcc: Enable ifunc attribute by default on s390 and s390x.
4068 2012-07-05  Steven Bosscher  <steven@gcc.gnu.org>
4070         * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
4071         * stmt.c (dump_case_nodes): New.
4072         (expand_case): Split out code generation parts into new functions.
4073         (expand_switch_as_decision_tree_p): Split out from expand_case.
4074         (emit_case_decision_tree): Likewise.
4075         (emit_case_dispatch_table): Likewise.
4077 2012-07-05  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4079         * config/arm/iterators.md (SDF): New mode iterator.
4080         (V_if_elem): Add support for SF and DF modes.
4081         (V_reg): Likewise.
4082         (F_constraint): New mode iterator attribute.
4083         (F_fma_type): Likewise.
4084         config/arm/vfp.md (fma<SDF:mode>4): New pattern.
4085         (*fmsub<SDF:mode>4): Likewise.
4086         (*fmnsub<SDF:mode>4): Likewise.
4087         (*fmnadd<SDF:mode>4): Likewise.
4089 2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
4091         * expmed.c (expand_mult): Initialize coeff and is_neg.
4093 2012-07-04  Oleg Endo  <olegendo@gcc.gnu.org>
4095         * config/sh/predicates.md (zero_extend_operand): New predicate.
4096         * config/sh/sh.md (zero_extendhisi2): Simplify by using new
4097         zero_extend_operand predicate.
4098         (zero_extendqisi2): Likewise.
4100 2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
4102         PR middle-end/53321
4103         * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
4104         to not call cgraph_propagate_frequency if something was changed.
4106 2012-07-04  Richard Guenther  <rguenther@suse.de>
4108         PR middle-end/53433
4109         * gimple-fold.c (get_base_constructor): Do not return an
4110         error_mark_node DECL_INITIAL.
4112 2012-07-04  Richard Guenther  <rguenther@suse.de>
4114         PR tree-optimization/53844
4115         * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
4116         the loop virtual PHI.
4118 2012-07-04  Richard Guenther  <rguenther@suse.de>
4120         PR tree-optimization/53849
4121         * tree-cfg.c (move_stmt_op): Only call add_referenced_var
4122         for duplicated locals.  Use add_referenced_var_1 to avoid
4123         pushing/popping cfun.
4125 2012-07-04  Kai Tietz  <ktietz@redhat.com>
4127         * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
4128         * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
4129         prototype.
4130         * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
4131         as i386_pe_reloc_rw_mask.
4133 2012-07-04  Richard Guenther  <rguenther@suse.de>
4135         * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
4136         as in free_lang_data_in_type.
4138 2012-07-04  Tobias Grosser <tobias@grosser.es>
4139             Michael Matz  <matz@suse.de>
4141         * Makefile.in (OBJS): Add graphite-optimize-isl.o.
4142         (graphite-optimize-isl.o): Add dependencies.
4143         * common.opt (floop-nest-optimize): New flag.
4144         * doc/invoke.texi (floop-nest-optimize): Document.
4145         * graphite-dependences.c (compute_deps): Export.
4146         * graphite-poly.h (compute_deps): Declare.
4147         * graphite-optimize-isl.c: New file.
4148         * graphite-poly.c (apply_poly_transforms): Run the loop
4149         nest optimizer.
4150         * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
4151         if -floop-nest-optimize is enabled.
4153 2012-07-03  Oleg Endo  <olegendo@gcc.gnu.org>
4155         * config/sh/predicates.md (logical_and_operand): New predicate.
4156         * config/sh/constraints.md (Jmb, Jmw): New constraints.
4157         * config/sh/sh.md (andsi3): Move expander above insns.  Add handling
4158         of 0xFFFF constant.  Use logical_and_operand predicate and
4159         satisfies_constraint_Jmb, satisfies_constraint_Jmw.
4160         (*andsi3_compact): Make it an insn_and_split.  Use
4161         logical_and_operand predicate.  Add Jmb,Jmw alternatives.
4163 2012-07-03  Jason Merrill  <jason@redhat.com>
4165         PR c++/53826
4166         * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
4168 2012-07-03  Nick Clifton  <nickc@redhat.com>
4170         * config/mep/mep.c (mep_reorg_regmove): Use
4171         next_nonnote_non_debug_insn to advance to the next insn.  Do not
4172         expect delete_insn to return an rtx.
4174 2012-07-03  Richard Guenther  <rguenther@suse.de>
4176         * doc/install.texi (CLooG): Clarify how CLooG needs to be
4177         configured and that it needs to be built against ISL 0.10.
4179 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
4181         * config/i386/i386.c (ix86_option_override_internal): Fix wrong
4182         code model string in the error message.
4184 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
4186         PR target/53811
4187         * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
4188         sibcall_insn_operand.  Move it to a temporary register if not.
4190 2012-07-03  Andreas Schwab  <schwab@linux-m68k.org>
4192         PR target/28896
4193         * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
4194         if !TARGET_68020.
4196 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
4198         * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
4200 2012-07-03  Roland McGrath  <mcgrathr@google.com>
4202         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
4203         assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
4204         * configure: Regenerated.
4205         * config/i386/i386.md (simple_return_internal_long): Use %;
4206         (ctz<mode>2): Likewise.
4207         (*pause): Likewise.
4209 2012-07-02  Oleg Endo  <olegendo@gcc.gnu.org>
4211         PR target/51244
4212         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
4213         predicates.
4214         * config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
4215         * config/sh/sh.c (get_t_reg_rtx): New function.  Use it when invoking
4216         gen_branch_true and gen_branch_false.
4217         * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
4218         gen_branch_false.
4219         (branch_true, branch_false): Use t_reg_operand predicate.
4220         (*branch_true, *branch_false): Delete.
4221         (movt): Use t_reg_operand predicate.
4222         (*negnegt): Use negt_reg_operand predicate and fold little and big
4223         endian variants.
4224         (*movtt): Use t_reg_operand and fold little and big endian variants.
4225         (*movt_qi): Delete.
4227 2012-07-02  Steven Bosscher  <steven@gcc.gnu.org>
4229         * stmt.c (emit_case_bit_tests): Remove.
4230         (expand_case): Remove expand_switch_using_bit_tests_p code.
4231         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
4232         (MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
4233         (lshift_cheap_p): Likewise.
4234         (expand_switch_using_bit_tests_p): Likewise.
4235         (struct case_bit_test): Likewise.
4236         (case_bit_test_cmp): Likewise.
4237         (emit_case_bit_tests): New implementation for GIMPLE.
4238         (gen_inbound_check): Do not release post-dominator info here.
4239         (process_switch): Reorder code.  Expand as bit tests if it
4240         looks like a win.
4241         (do_switchconv): Release post-dominator info here if something changed.
4242         (struct gimple_opt_pass): Verify more.
4243         * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
4245 2012-07-02  Martin Jambor  <mjambor@suse.cz>
4247         PR middle-end/38474
4248         * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
4249         dynamic type change check.
4251 2012-07-02  Richard Guenther  <rguenther@suse.de>
4252             Michael Matz  <matz@suse.de>
4253             Tobias Grosser <tobias@grosser.es>
4254             Sebastian Pop <sebpop@gmail.com>
4256         * Makefile.in: Remove PPL flags in favor of ISL ones.
4257         (BACKENDLIBS): Remove PPL libs.
4258         (INCLUDES): Remove PPL includes in favor of ISL ones.
4259         (graphite-clast-to-gimple.o): Remove graphite-dependences.h and
4260         graphite-cloog-compat.h dependencies.
4261         (graphite-dependences.o): Likewise.
4262         (graphite-poly.o): Likewise.
4263         * configure.ac: Declare ISL vars instead of PPL ones.
4264         * configure: Regenerated.
4265         * doc/install.texi: Replace PPL requirement documentation with ISL one.
4266         * graphite-blocking.c: Remove PPL code, add ISL equivalent.
4267         * graphite-clast-to-gimple.c: Likewise.
4268         * graphite-dependences.c: Likewise.
4269         * graphite-interchange.c: Likewise.
4270         * graphite-poly.h: Likewise.
4271         * graphite-poly.c: Likewise.
4272         * graphite-sese-to-poly.c: Likewise.
4273         * graphite.c: Likewise.
4274         * graphite-scop-detection.c: Re-arrange includes.
4275         * graphite-cloog-util.c: Remove.
4276         * graphite-cloog-util.h: Likewise.
4277         * graphite-ppl.h: Likewise.
4278         * graphite-ppl.c: Likewise.
4279         * graphite-dependences.h: Likewise.
4281 2012-07-02  Richard Guenther  <rguenther@suse.de>
4283         Merge from graphite branch
4284         2011-07-21  Tobias Grosser  <tobias@grosser.es>
4286         * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
4287         Remove graphite-cloog-util.h.
4288         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
4289         build_iv_mapping, translate_clast_user, translate_clast,
4290         free_scattering, initialize_cloog_names, build_cloog_prog,
4291         create_params_index): Do not use old compatibility functions.
4292         (clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
4293         * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
4294         compatibility functions.
4295         (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
4296         cloog.
4297         * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
4298         * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
4299         cloog_finalize().
4300         * graphite-cloog-compat.h: Remove.
4302         2011-08-09  Tobias Grosser <tobias@grosser.es>
4304         * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
4305         of the string, no just a reference.
4306         (clast_name_index): Add a new field, that specifies if we need to free
4307         the name.
4308         (free_clast_name_index): If necessary, free the name string.
4309         (clast_name_index_elt_info): Calculate the hash based on the string
4310         content, not the memory location it is stored in.
4311         (clast_name_to_level): Specify that we do not need to free the name.
4312         (clast_name_to_index): Dito.
4313         (clast_name_to_lb_ub): Dito.
4314         (eq_clast_name_indexes): Compare the strings, not their base pointers.
4315         (free_scattering): Removed.
4316         (initialize_cloog_names): Renamed to add_names_to_union_domain().
4317         (add_names_to_union_domain): Changed to work on a union_domain,
4318         instead of a CloogNames structure.
4319         (build_cloog_prog): Removed.
4320         (build_cloog_union_domain): New.
4321         (generate_cloog_input): New.
4322         (scop_to_clast): Use CloogInput instead of CloogProgram.
4323         (print_generated_program): Adapt to new scop_to_clast() and do not
4324         print the CloogProgram any more.
4325         (create_params_index): Removed, functionality integrated in
4326         add_names_to_union_domain().
4327         (gloog): Adapt to new scop_to_clast().
4328         * graphite-clast-to-gimple.h (scop_to_clast): Remove.
4330         2012-01-11  Tobias Grosser <tobias@grosser.es>
4332         * graphite-clast-to-gimple.c (clast_name_to_index,
4333         clast_name_to_lb_ub, clast_name_to_gcc): Change types.
4334         (clast_to_gcc_expression): Add clast_expr_name as a new
4335         case. Do not assume a clast_expr_term points always to a
4336         clast_expr_name.
4337         (type_for_clast_term): Do not assume a clast_expr_term points always to
4338         a clast_expr_name.
4339         (type_for_clast_name): New.
4340         (type_for_clast_expr): Add clast_expr_name as a new case.
4342         2011-08-03  Sebastian Pop <sebpop@gmail.com>
4344         * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
4345         new_Cloog_Scattering_from_ppl_Polyhedron,
4346         new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
4348 2012-07-02  Jakub Jelinek  <jakub@redhat.com>
4350         PR tree-optimization/53645
4351         * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
4352         instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.
4354 2012-07-01  Wei Guozhi  <carrot@google.com>
4356         PR target/53447
4357         * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
4358         * config/arm/arm.c (const_ok_for_dimode_op): New function.
4359         * config/arm/constraints.md (Dd): New constraint.
4360         * config/arm/predicates.md (arm_adddi_operand): New predicate.
4361         * config/arm/arm.md (adddi3): Extend it to handle constants.
4362         (arm_adddi3): Likewise.
4363         (addsi3_carryin_<optab>): Extend it to handle sbc case.
4364         (addsi3_carryin_alt2_<optab>): Likewise.
4365         * config/arm/neon.md (adddi3_neon): Extend it to handle constants.
4367 2012-06-30  Nathan Sidwell  <nathan@acm.org>
4369         * coverage.c (bbg_file_stamp): New.
4370         (read_counts_file): Merge incoming stamp with bbg_file_stamp.
4371         (build_info): Write bbg_file_stamp.
4372         (coverage_init): Initialize bbg_file_stamp.  Read counts file
4373         before writing graph header.
4374         (coverage_finish): Don't unlink the data file if we can generate a
4375         unique file stamp.
4376         * tree.h (crc32_unsigned): Declare.
4377         * tree.c (crc32_unsigned_bits): New, broken out of ...
4378         (crc32_byte): ... here.  Use it.
4379         (crc32_unsigned): New.
4381 2012-06-29  Cary Coutant  <ccoutant@google.com>
4383         * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
4384         (gen_subprogram_die): Don't add pubname if want_pubnames is false.
4385         (gen_variable_die): Likewise.
4386         (gen_namespace_die): Likewise.
4388 2012-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4390         * tree-eh.c (lower_try_finally_switch): Really put the location of the
4391         last statement of the finally block onto the switch.
4393 2012-06-29  H.J. Lu  <hongjiu.lu@intel.com>
4395         PR target/53539
4396         * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
4397         TARGET_LP64.
4399 2012-06-29  Sterling Augustine  <saugustine@google.com>
4401         * dwarf2out.c (add_pubname): Add comment.
4402         (add_pubtype): Fix indentation.
4403         (gen_enumeration_type_die): Likewise.
4405 2012-06-29  Jakub Jelinek  <jakub@redhat.com>
4407         * tree-vect-generic.c (expand_vector_divmod): For even/odd
4408         widening multiply, put even always as first argument to VEC_PERM_EXPR.
4410 2012-06-29  Richard Henderson  <rth@redhat.com>
4412         * tree-vect-generic.c: Include target.h.
4413         (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
4414         * Makefile.in (tree-vect-generic.o): Update.
4416 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
4418         * configure.ac: Remove special gtfiles case for C.
4419         * configure: Regenerate.
4420         * Makefile.in: Remove C front-end hooks and build hooks that
4421         will be picked up from c/Make-lang.in now.
4422         Add tree-mudflap to C_COMMON_OBJS.
4423         * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
4424         * config/vms/vms.c: Look for c-tree.h in c/.
4425         * doc/gty.texi: Remove reference to c-config-lang.in.
4426         * doc/sourcebuild.texi: Document the c/ subdirectory.
4428 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
4430         * system.h (CASE_USE_BIT_TESTS): Poison.
4431         * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
4432         (expand_switch_using_bit_tests_p): ...here.
4433         * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
4434         * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.
4436 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
4438         * system.h (IFCVT_EXTRA_FIELDS): Poison.
4439         (IFCVT_INIT_EXTRA_FIELDS): Poison.
4440         * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
4441         * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
4442         IFCVT_INIT_EXTRA_FIELDS.
4443         * gengtype-parse.c (struct_field_seq): Remove obsolete comment.
4444         * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
4445         IFCVT_MACHDEP_INIT.
4446         * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
4447         frv_ifcvt_machdep_init.
4448         * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
4449         Remove documentation.
4450         (IFCVT_MACHDEP_INIT): Document.
4451         * doc/tm.texi: Regenerate.
4453 2012-06-29  Nick Clifton  <nickc@redhat.com>
4455         * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.
4457 2012-06-29  Jakub Jelinek  <jakub@redhat.com>
4459         * tree-vect-stmts.c (vectorizable_operation): Check both
4460         VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
4461         Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).
4463 2012-06-28  Richard Henderson  <rth@redhat.com>
4465         * doc/generic.texi (MULT_HIGHPART_EXPR): Document it.
4467 2012-06-28  Jakub Jelinek  <jakub@redhat.com>
4469         PR tree-optimization/51581
4470         * tree-vect-stmts.c (permute_vec_elements): Add forward decl.
4471         (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
4472         also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
4473         VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
4474         * tree-vect-patterns.c (vect_recog_divmod_pattern): Use
4475         MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.
4477         PR tree-optimization/53645
4478         * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
4479         instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
4480         if possible.
4482 2012-06-28  Georg-Johann Lay  <avr@gjlay.de>
4484         PR 53595
4485         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
4486         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
4487         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
4488         avr_hard_regno_call_part_clobbered.
4490 2012-06-28  Richard Guenther  <rguenther@suse.de>
4492         PR middle-end/53790
4493         * expr.c (expand_expr_real_1): Verify if the type is complete
4494         before inspecting its size.
4496 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
4498         * doc/include/gpl.texi: Remove.
4499         * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.
4501 2012-06-28  Jakub Jelinek  <jakub@redhat.com>
4503         PR tree-optimization/53645
4504         * tree-vect-generic.c (add_rshift): New function.
4505         (expand_vector_divmod): New function.
4506         (expand_vector_operation): Use it for vector integer
4507         TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
4508         * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
4509         unused lguup variable with dummy_int.
4511 2012-06-28  OLivier Hainque  <hainque@adacore.com>
4513         * expr.c (convert_move): Latch mem integer inputs into a
4514         register before expanding a multi-instructions sequence.
4516 2012-06-28  Alexandre Oliva  <aoliva@redhat.com>
4517             Uros Bizjak  <ubizjak@gmail.com>
4518             Jakub Jelinek  <jakub@redhat.com>
4520         PR debug/53706
4521         PR debug/47624
4522         * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
4523         (vt_finalize): ... here instead, if needed.
4525 2012-06-28  Alexandre Oliva  <aoliva@redhat.com>
4527         PR debug/53740
4528         PR debug/52983
4529         PR debug/48866
4530         * dce.c (word_dce_process_block): Check whether inserting debug
4531         temps are needed even for needed insns.
4532         (dce_process_block): Likewise.
4533         * df-problems.c (dead_debug_add): Add comment about multi-regs.
4534         (dead_debug_insert_temp): Likewise.  Don't subreg when we're
4535         setting fewer regs than a multi-reg requires.
4537 2012-06-27  Richard Henderson  <rth@redhat.com>
4539         * config/alpha/alpha.c (alpha_dimode_u): New.
4540         (alpha_init_builtins): Initialize it, and use it.
4541         (alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
4542         (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
4543         (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
4544         (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
4545         (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
4546         (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
4547         (alpha_fold_builtin_ctpop): Likewise.
4548         (alpha_fold_builtin_umulh): Remove.
4549         (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
4550         typo in MAX_ARGS check.
4552 2012-06-27  Richard Henderson  <rth@redhat.com>
4554         * tree.def (MULT_HIGHPART_EXPR): New.
4555         * cfgexpand.c (expand_debug_expr): Ignore it.
4556         * expr.c (expand_expr_real_2): Handle it.
4557         * fold-const.c (int_const_binop_1): Likewise.
4558         * optabs.c (optab_for_tree_code): Likewise.
4559         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
4560         * tree-inline.c (estimate_operator_cost): Likewise.
4561         * tree-pretty-print.c (dump_generic_node): Likewise.
4562         (op_code_prio, op_symbol_code): Likewise.
4563         * tree.c (commutative_tree_code): Likewise.  Also handle
4564         WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
4566 2012-06-27  Richard Henderson  <rth@redhat.com>
4568         PR target/53749
4569         * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
4570         in 2012-06-23 change.  Adjust two other DImode tests as well.
4572 2012-06-27  Nick Clifton  <nickc@redhat.com>
4574         * config/rx/rx.md (comparesi3_extend): Remove = modifier from
4575         input operand.
4577 2012-06-27  Richard Guenther  <rguenther@suse.de>
4579         PR middle-end/53676
4580         * tree-chrec.c (chrec_convert_1): Represent truncation to
4581         a type with undefined overflow as truncation to an unsigned
4582         type converted to the type with undefined overflow.
4583         * tree-scalar-evolution.c (interpret_rhs_expr): For computing
4584         the scalar evolution of a truncated widened operation avoid
4585         looking at the non-existing evolution of the widened operation
4586         result.
4588 2012-06-27  Richard Guenther  <rguenther@suse.de>
4590         PR tree-optimization/53774
4591         * tree-ssa-reassoc.c (get_rank): All default defs have
4592         precomputed rank.
4593         (init_reassoc): Precompute rank for all SSA default defs.
4595 2012-06-27  Nick Clifton  <nickc@redhat.com>
4597         * config/rx/rx.md (simple_return): Use the simple_return rtx.
4599 2012-06-26  Richard Henderson  <rth@redhat.com>
4601         * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
4602         and don't fall thru from standard_80387_constant_p to the memory
4603         fallback.
4605 2012-06-26  Richard Henderson  <rth@redhat.com>
4607         * config/i386/i386.c (bdesc_args): Update.  Change
4608         IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
4609         (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
4610         (ix86_builtin_mul_widen_even): Use it.
4611         (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
4612         (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
4613         * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
4614         for all SSE2.
4615         (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
4616         (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise.  Relax from V124_AVX2.
4617         (vec_widen_smult_even_v4si): New.
4619 2012-06-26  Richard Henderson  <rth@redhat.com>
4621         * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
4622         to expander; move guts to ...
4623         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here.  Add
4624         highparts before shifting up.
4625         * config/i386/i386-protos.h: Update.
4627 2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
4629         * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
4630         * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
4631         * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
4633 2012-06-26  Alexandre Oliva  <aoliva@redhat.com>
4635         * var-tracking.c (vt_add_function_parameter): Use a preserved
4636         VALUE for the MEM address of an incoming parameter.
4638 2012-06-26  Sterling Augustine <saugustine@google.com>
4640         * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
4641         (prune_unused_types): Likewise.
4643 2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
4645         * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4646         UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
4647         * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4648         UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
4649         VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
4650         VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
4651         * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
4652         UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
4653         * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
4654         documentation.
4655         * doc/tm.texi: Regenerate.
4656         * doc/cpp.texi: Make example for #error generic.
4657         * config/frv/frv.h: Fix example text to match tm.texi.
4659 2012-06-26  Bill Schmidt  <wschmidt@linux.ibm.com>
4661         * tree-pass.h (pass_strength_reduction): New decl.
4662         * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
4663         (finalize_costs): Likewise.
4664         * timevar.def (TV_TREE_SLSR): New timevar.
4665         * gimple-ssa-strength-reduction.c: New.
4666         * tree-flow.h (initialize_costs): New decl.
4667         (finalize_costs): Likewise.
4668         * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
4669         * passes.c (init_optimization_passes): Add pass_strength_reduction.
4671 2012-06-26  Matt Turner  <mattst88@gmail.com>
4673         * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
4674         (__builtin_arm_tinsrh): Likewise.
4675         (__builtin_arm_tinsrw): Likewise.
4676         (__builtin_arm_wsadb): Add missing v2si parameter.
4677         (__builtin_arm_wsadh): Likewise.
4678         (__builtin_arm_getwcx): Delete.
4679         (__builtin_arm_setwcx): Delete.
4680         (__builtin_arm_getwcgr0): Add.
4681         (__builtin_arm_getwcgr1): Add.
4682         (__builtin_arm_getwcgr2): Add.
4683         (__builtin_arm_getwcgr3): Add.
4684         (__builtin_arm_setwcgr0): Add.
4685         (__builtin_arm_setwcgr1): Add.
4686         (__builtin_arm_setwcgr2): Add.
4687         (__builtin_arm_setwcgr3): Add.
4689 2012-06-26  Richard Guenther  <rguenther@suse.de>
4691         Revert
4692         2012-06-21  Richard Guenther  <rguenther@suse.de>
4694         * tree-inline.c (estimate_num_insns): Estimate call cost for
4695         tailcalls properly.
4697 2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
4699         PR other/33190
4700         * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
4701         * doc/tm.texi: Regenerate.
4703 2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
4705         PR other/33190
4706         * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
4707         * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
4708         * doc/tm.texi.in: Remove documentation for unused target macros
4709         ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
4710         DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
4711         REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
4712         TARGET_NARROW_VOLATILE_BITFIELDS.
4713         Document that MD_HANDLE_UNWABI is a macro in libgcc.
4714         * doc/tm.texi: Regenerate.
4715         * system.h: Poison target macros
4716         ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
4717         DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
4718         REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
4719         TARGET_NARROW_VOLATILE_BITFIELDS
4721 2012-06-26  Jan Hubicka  <jh@suse.cz>
4723         PR lto/53572
4724         * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
4725         used symbols.
4727 2012-06-26  Dehao Chen  <dehao@google.com>
4729         * tree-inline.c: (expand_call_inline): Ensure that lexical block's
4730         source location is consistant with the call stmt.
4732 2012-06-26  Ulrich Weigand  <ulrich.weigand@linaro.org>
4734         PR tree-optimization/53729
4735         PR tree-optimization/53636
4736         * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
4737         vect_verify_datarefs_alignment until after statements have
4738         been marked as relevant/irrelevant.
4739         * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
4740         Skip irrelevant statements.
4741         (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
4742         instead of STMT_VINFO_RELEVANT.
4743         (vect_get_data_access_cost): Do not check for supportable
4744         alignment before calling vect_get_load_cost/vect_get_store_cost.
4745         * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
4746         handling unsupported alignment.
4747         (vect_get_load_cost): Likewise.
4749 2012-06-25  Steven Bosscher  <steven@gcc.gnu.org>
4751         * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
4752         Do not define JMP_BUF_SIZE.
4754 2012-06-26  Jakub Jelinek  <jakub@redhat.com>
4756         PR tree-optimization/53748
4757         * tree-ssa-phiopt.c (conditional_replacement): Only optimize
4758         if arg0/arg1 have integral or pointer types.
4760 2012-06-25  Richard Henderson  <rth@redhat.com>
4762         * config/i386/sse.md (sse2_sse4_1): Remove code attr.
4763         (<s>dot_prodv4si, <s>dot_prodv8si): Remove
4764         (sdot_prodv4si): New; handle only XOP.
4766 2012-06-25  Richard Henderson  <rth@redhat.com>
4768         * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
4769         (V2UDI_FUNC_V4USI_V4USI): New.
4770         (V4UDI_FUNC_V8USI_V8USI): New.
4771         * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
4772         (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
4773         (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
4774         (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
4775         (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
4776         (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
4777         (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
4778         (bdesc_args): Add them.
4779         (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
4780         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
4781         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
4782         (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
4783         * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
4785 2012-06-25  Richard Henderson  <rth@redhat.com>
4787         * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
4789 2012-06-25  Richard Henderson  <rth@redhat.com>
4791         * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
4792         to V16QImode.
4793         (ix86_expand_vec_interleave): New.
4794         (ix86_expand_mul_widen_evenodd): New.
4795         (ix86_expand_mul_widen_hilo): New.
4796         (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
4797         * config/i386/i386.md (u_bool) New code attr.
4798         * config/i386/predicates.md
4799         (nonimmediate_or_const_vector_operand): Remove.
4800         * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
4801         both AVX and SSE4_1.
4802         (vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
4803         (vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
4804         (vec_widen<s>mult_hi_v8si): Remove.
4805         (vec_widen<s>mult_lo_v8si): Remove.
4806         (vec_widen_smult_hi_v4si): Remove.
4807         (vec_widen_smult_lo_v4si): Remove.
4808         (vec_widen_umult_hi_v4si): Remove.
4809         (vec_widen_umult_lo_v4si): Remove.
4810         (vec_widen_<s>mult_hi_<VI124_AVX2>): New.
4811         (vec_widen_<s>mult_lo_<VI124_AVX2>): New.
4812         * config/i386/i386-protos.h: Update.
4814 2012-06-25  Christophe Lyon  <christophe.lyon@st.com>
4816         * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
4817         (neon_vld1_dup): Restrict to VQ operands.
4818         (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
4820 2012-06-25  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4821             James Greenhalgh  <james.greenhalgh@arm.com>
4823         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
4824         (TARGET_FMA): New macro.
4825         (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
4826         (TARGET_ARM_ARCH): Likewise.
4827         (TARGET_ARM_ARCH_ISA_THUMB): Likewise.
4828         (TARGET_V6M, TARGET_V7M): Likewise.
4829         (TARGET_ARM_ARCH_PROFILE): Likewise.
4830         (TARGET_ARM_FEATURE_LDREX): Likewise.
4831         (TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
4832         (ARM_MIN_ENUM_SIZE): Likewise.
4833         * config/arm/arm.c (arm_file_start): Refactor appropriately.
4834         (base_architecture): New enumeration.
4835         (arm_base_arch): New global variable.
4836         (processors): Add field base_arch.
4837         (ARM_ARCH, ARM_CORE): Adjust accordingly.
4838         (arm_option_override): Add initialization of arm_base_arch.
4839         * doc/cpp.texi (system-specific predefined macros.): Change.
4841 2012-06-25  Jakub Jelinek  <jakub@redhat.com>
4843         PR target/53759
4844         * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
4845         of x x x in the vmovlps load alternative.
4847 2012-06-25  Richard Sandiford  <rdsandiford@googlemail.com>
4849         PR debug/53740
4850         * df.h (dead_debug_add): Remove third argument.
4851         * df-problems.c (dead_debug_add): Likewise.  Use the REGNO of the
4852         REG that we want to replace instead.
4853         (dead_debug_insert_temp): Use the REGNO of the reg that we want
4854         to replace instead of DF_REF_REGNO.  Require there to always be
4855         at least one such use.  Check for cases where the same location
4856         has more than df_ref associated with it.
4857         (df_note_bb_compute): Remove third dead_debug_add argument.
4858         * dce.c (word_dce_process_block): Likewise.
4860 2012-06-25  Steven Bosscher  <steven@gcc.gnu.org>
4862         * config/v850/v850.c: Remove redundant extern declarations for
4863         last_assemble_variable_decl and size_directive_output.
4865         * doc/tm.texi.in: Document JMP_BUF_SIZE.
4866         * doc/tm.texi: Regenerate.
4867         * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
4868         * config/pa/pa.h (JMP_BUF_SIZE): Likewise.
4869         * config/stormy16/stormy16.h: Likewise.
4871         * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.
4873         * doc/sourcebuild.texi: Add missing subdirectories.
4875 2012-06-25  Tristan Gingold  <gingold@adacore.com>
4877         * config/i386/i386.h: Fix typo.
4879 2012-06-25  Tristan Gingold  <gingold@adacore.com>
4881         * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
4882         (seh_cfa_adjust_cfa): ... that function.
4883         (seh_emit_stackalloc): Do not emit out of range values.
4884         * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
4885         UNSPEC_DEF_CFA constants.
4886         * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
4887         * config/i386/i386.c (ix86_frame_pointer_required): Required
4888         for very large frames on SEH target.
4889         (ix86_compute_frame_layout): Save area is before frame pointer
4890         on SEH target.  Handle very large frames.
4891         (ix86_expand_prologue): Likewise.
4893 2012-06-24  Steven Bosscher  <steven@gcc.gnu.org>
4895         * output.h: (current_function_is_leaf,
4896         current_function_sp_is_unchanging,
4897         current_function_uses_only_leaf_regs): Remove.
4898         * function.c (current_function_is_leaf,
4899         current_function_sp_is_unchanging,
4900         current_function_uses_only_leaf_regs): Remove.
4901         (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
4902         instead of current_function_uses_only_leaf_regs.
4903         * function.h (struct rtl_data): New fields sp_is_unchanging,
4904         is_leaf, uses_only_leaf_regs.
4905         * resource.c (init_resource_info): Replace current_function_is_leaf,
4906         current_function_sp_is_unchanging, and
4907         current_function_uses_only_leaf_regs with new crtl fields.
4908         * sdbout.c (sdbout_symbol): Likewise.
4909         * df-core.c (rest_of_handle_df_initialize): Likewise.
4910         * ira.c (ira): Likewise.
4911         * final.c (final_start_function): Likewise.
4912         * reorg.c (fill_simple_delay_slots): Likewise.
4913         * regrename.c (check_new_reg_p): Likewise.
4914         * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
4915         (notice_stack_pointer_modification): Likewise.
4916         * dbxout.c (dbxout_symbol): Likewise.
4917         (dbxout_parms): Likewise.
4918         * sel-sched.c (init_regs_for_mode): Likewise.
4919         * dwarf2out.c (dbx_reg_number): Likewise.
4920         (multiple_reg_loc_descriptor): Likewise.
4921         * config/i386/i386.c (ix86_frame_pointer_required): Likewise.
4922         (gen_pop): Likewise.
4923         (ix86_select_alt_pic_regnum): Likewise.
4924         (ix86_compute_frame_layout): Likewise.
4925         (ix86_finalize_stack_realign_flags): Likewise.
4926         (ix86_expand_epilogue): Likewise.
4927         * config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
4928         * config/h8300/h8300.c (byte_reg): Likewise.
4929         * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
4930         (c6x_save_reg): Likewise.
4931         (c6x_compute_frame_layout): Likewise.
4932         * config/pa/pa.c (pa_compute_frame_size): Likewise.
4933         (pa_output_function_prologue): Likewise.
4934         * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
4935         * config/sparc/sparc.md (attr "leaf_function"): Likewise.
4936         * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
4937         (sparc_expand_prologue): Likewise.
4938         (sparc_flat_expand_prologue): Likewise.
4939         (sparc_asm_function_prologue): Likewise.
4940         (sparc_output_mi_thunk): Likewise.
4941         (sparc_frame_pointer_required): Likewise.
4942         * config/epiphany/epiphany.c (epiphany_compute_function_type):
4943         Likewise.
4944         (epiphany_compute_frame_size): Likewise.
4945         * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
4946         * config/cris/cris.c (cris_md_asm_clobbers): Likewise.
4947         (cris_frame_pointer_required): Likewise.
4948         * config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
4949         (tilepro_current_function_is_leaf): Likewise.
4950         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
4951         * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
4952         * config/ia64/ia64.c (find_gr_spill): Likewise.
4953         (ia64_compute_frame_size): Likewise.
4954         (ia64_can_eliminate): Likewise.
4955         (ia64_initial_elimination_offset): Likewise.
4956         * config/m68k/m68k.c (m68k_save_reg): Likewise.
4957         (m68k_expand_epilogue): Likewise.
4958         * config/rx/rx.c (rx_get_stack_layout): Likewise.
4959         * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
4960         * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
4961         Likewise.
4962         (picochip_output_frame_debug): Likewise.
4963         * config/sh/sh.c (sh_media_register_for_return): Likewise.
4964         (sh_allocate_initial_value): Likewise.
4965         (sh_output_mi_thunk): Likewise.
4966         * config/microblaze/microblaze.c (microblaze_must_save_register):
4967         Likewise.
4968         (compute_frame_size): Likewise.
4969         (microblaze_initial_elimination_offset): Likewise.
4970         (microblaze_expand_prologue): Likewise.
4971         (microblaze_expand_epilogue): Likewise.
4972         * config/frv/frv.c (frv_expand_epilogue): Likewise.
4973         (frv_frame_pointer_required): Likewise.
4974         * config/spu/spu.c (get_pic_reg): Likewise.
4975         (direct_return): Likewise.
4976         (spu_expand_prologue): Likewise.
4977         (spu_expand_epilogue): Likewise.
4978         (spu_initial_elimination_offset): Likewise.
4979         * config/mips/mips.c (mips_global_pointer): Likewise.
4980         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
4981         (mips_compute_frame_info): Likewise.
4982         * config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
4983         (mep_reload_pointer): Likewise.
4984         * config/rl78/rl78.c (need_to_save): Likewise.
4985         * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
4986         * config/score/score.c (score_compute_frame_size): Likewise.
4987         (score_function_prologue): Likewise.
4988         * config/bfin/bfin.c (must_save_p): Likewise.
4989         (expand_prologue_reg_save): Likewise.
4990         (expand_epilogue_reg_restore): Likewise.
4991         (bfin_frame_pointer_required): Likewise.
4992         (n_regs_saved_by_prologue): Likewise.
4993         (add_to_reg): Likewise.
4994         (expand_interrupt_handler_prologue): Likewise.
4995         (expand_interrupt_handler_epilogue): Likewise.
4996         (bfin_expand_prologue): Likewise.
4997         * config/avr/avr.c (avr_regs_to_save): Likewise.
4998         (avr_prologue_setup_frame): Likewise.
4999         (expand_epilogue): Likewise.
5000         * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
5001         (s390_register_info): Likewise.
5002         (s390_frame_info): Likewise.
5003         (s390_init_frame_layout): Likewise.
5004         (s390_emit_prologue): Likewise.
5007 2012-06-24  Steven Bosscher  <steven@gcc.gnu.org>
5009         * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
5010         * vmsdbgout: Do not undefine it if defined.
5011         Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
5012         * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
5013         * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.
5015 2012-06-24  Richard Sandiford  <rdsandiford@googlemail.com>
5017         * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.
5019 2012-06-23  Richard Henderson  <rth@redhat.com>
5021         PR target/53749
5022         * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
5023         V*QImode shifts and multiply.
5024         (ix86_expand_vecop_qihi): Support shifts.
5025         * config/i386/i386.md (any_shift): New code iterator.
5026         * config/i386/sse.md (ashlv16qi3): Merge ...
5027         (<any_shiftrt>v16qi3): ... into ...
5028         (<any_shift><VI1_AVX2>3): ... here.  Use ix86_expand_vecop_qihi
5029         to support SSE and AVX.
5031         * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
5032         parameter into src and dest.
5033         * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
5034         (vec_unpacks_hi_<V124_AVX2>): Likewise.
5035         (vec_unpacku_lo_<V124_AVX2>): Likewise.
5036         (vec_unpacks_lo_<V124_AVX2>): Likewise.
5037         * config/i386/i386-protos.h: Update.
5039         * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
5040         pure expander; move expansion code ...
5041         * config/i386/i386.c (ix86_expand_vecop_qihi): ... here.  New function.
5042         * config/i386/i386-protos.h: Update.
5044 2012-06-22  Edmar Wienskoski  <edmar@freescale.com>
5046         * config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
5047         (popcntb<mode>2): Add attribute type popcnt.
5048         (popcntd<mode>2): Ditto.
5049         * config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
5050         * config/rs6000/power5.md (define_insn_reservation): Ditto.
5051         * config/rs6000/power7.md (define_insn_reservation): Ditto.
5052         * config/rs6000/476.md (define_insn_reservation): Ditto.
5053         * config/rs6000/power6.md (define_insn_reservation): New
5054         reservation for popcnt instructions.
5056 2012-06-22  H.J. Lu  <hongjiu.lu@intel.com>
5058         * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.
5060 2012-06-22  H.J. Lu  <hongjiu.lu@intel.com>
5062         PR target/53383
5063         * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
5065         * config/i386/i386.c (ix86_option_override_internal): Allow
5066         -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
5068         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
5069         if SSE is disabled.
5071 2012-06-22  Bill Schmidt  <wschmidt@linux.ibm.com>
5073         * double-int.c (double_int_multiple_of): New function.
5074         * double-int.h (double_int_multiple_of): New decl.
5075         * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
5076         (mbc_entry_hash): New forward decl.
5077         (mbc_entry_eq): Likewise.
5078         (zero_cost): Change to no_cost.
5079         (mult_costs): New static var.
5080         (cost_tables_exist): Likewise.
5081         (initialize_costs): New function.
5082         (finalize_costs): Likewise.
5083         (tree_ssa_iv_optimize_init): Call initialize_costs.
5084         (add_cost): Change to add_regs_cost; distinguish costs by speed.
5085         (multiply_regs_cost): New function.
5086         (add_const_cost): Likewise.
5087         (extend_or_trunc_reg_cost): Likewise.
5088         (negate_reg_cost): Likewise.
5089         (multiply_by_cost): Change to multiply_by_const_cost; distinguish
5090         costs by speed.
5091         (get_address_cost): Change add_cost to add_regs_cost; change
5092         multiply_by_cost to multiply_by_const_cost.
5093         (force_expr_to_var_cost): Change zero_cost to no_cost; change
5094         add_cost to add_regs_cost; change multiply_by_cost to
5095         multiply_by_const_cost.
5096         (split_cost): Change zero_cost to no_cost.
5097         (ptr_difference_cost): Likewise.
5098         (difference_cost): Change zero_cost to no_cost; change multiply_by_cost
5099         to multiply_by_const_cost.
5100         (get_computation_cost_at): Change add_cost to add_regs_cost; change
5101         multiply_by_cost to multiply_by_const_cost.
5102         (determine_use_iv_cost_generic): Change zero_cost to no_cost.
5103         (determine_iv_cost): Change add_cost to add_regs_cost.
5104         (iv_ca_new): Change zero_cost to no_cost.
5105         (tree_ssa_iv_optimize_finalize): Call finalize_costs.
5106         * tree-ssa-address.c (most_expensive_mult_to_index): Change
5107         multiply_by_cost to multiply_by_const_cost.
5108         * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
5109         (add_regs_cost): New decl.
5110         (multiply_regs_cost): Likewise.
5111         (add_const_cost): Likewise.
5112         (extend_or_trunc_reg_cost): Likewise.
5113         (negate_reg_cost): Likewise.
5115 2012-06-22  Richard Guenther  <rguenther@suse.de>
5117         Merge from graphite branch
5118         2011-08-10  Sebastian Pop <sebpop@gmail.com>
5120         * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
5122         2012-01-13  Tobias Grosser  <tobias@grosser.es>
5124         * tree-flow.h (parallelized_function_p): Declare.
5125         * tree-parloops.c (parallelized_function_p): Export.
5126         * graphite.c (graphite_transform_loops): Do not run graphite on
5127         already parallel functions.
5129 2012-06-22  Alan Modra  <amodra@gmail.com>
5131         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
5132         return mem.  Convert to indirect addressing if not indirect or
5133         indexed.  Adjust all callers.
5135 2012-06-22  Richard Guenther  <rguenther@suse.de>
5137         * gcov-iov.c: Include bconfig.h and system.h.
5139 2012-06-22  Andreas Schwab  <schwab@linux-m68k.org>
5141         * doc/include/texinfo.tex: Update to version 2012-06-05.14.
5143 2012-06-22  Richard Guenther  <rguenther@suse.de>
5145         PR gcov-profile/53744
5146         * gcov-iov.c (main): Treat "" and "prerelease" the same.
5148 2012-06-22  Eric Botcazou  <ebotcazou@adacore.com>
5150         PR debug/53704
5151         * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
5152         for GNU Fortran if in strict DWARF2 mode.
5154 2012-06-22  Eric Botcazou  <ebotcazou@adacore.com>
5156         * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
5157         DECL_IGNORED_P non-reg vars even if they are used.
5159 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
5161         PR debug/53671
5162         PR debug/49888
5163         * var-tracking.c (vt_get_canonicalize_base): New.
5164         (vt_canonicalize_addr, vt_stack_offset_p): New.
5165         (vt_canon_true_dep): New.
5166         (drop_overlapping_mem_locs): Use vt_canon_true_dep.
5167         (clobber_overlaping_mems): Use vt_canonicalize_addr.
5169 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
5171         PR debug/53671
5172         PR debug/49888
5173         * var-tracking.c (vt_initialize): Record initial offset between
5174         arg pointer and stack pointer.
5176 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
5178         PR debug/53671
5179         PR debug/49888
5180         * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
5181         CFA base.
5183 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
5185         PR debug/53671
5186         PR debug/49888
5187         * alias.c (memrefs_conflict_p): Improve handling of AND for alignment.
5189 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
5191         * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.
5193 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
5195         PR debug/53682
5196         * cselib.c (promote_debug_loc): Don't crash on NULL argument.
5198 2012-06-21  Meador Inge  <meadori@codesourcery.com>
5200         PR c/53702
5201         * c-decl.c (c_push_function_context): Restore the behavior to reuse
5202         the language function allocated for -Wunused-local-typedefs.
5203         (c_pop_function_context): If necessary, clear the language function
5204         created in c_push_function_context.  Always clear out the
5205         x_cur_stmt_list field of the restored language function.
5207 2012-06-21  Sterling Augustine  <saugustine@google.com>
5208             Cary Coutant  <ccoutant@google.com>
5210         * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
5211         add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
5212         (comdat_type_struct): New field 'skeleton_die'.
5213         (breakout_comdat_types): Update it.
5214         (add_pubname): Rework logic.  Call is_class_die, is_cu_die and
5215         is_namespace_die.  Fix minor style violation.  Call want_pubnames.
5216         (add_pubname_string): Call want_pubnames.
5217         (add_pubtype): Rework logic for calculating type name.  Call
5218         is_namespace_die.  Call want_pubnames.
5219         (output_pubnames): Move conditional logic deciding when to produce the
5220         section from dwarf2out_finish.  Use new skeleton_die field.
5221         (base_type_die): Call add_pubtype.
5222         (gen_enumeration_type_die): Unconditionally call add_pubtype.
5223         (gen_subprogram_die): Adjust calls to add_pubname.
5224         (gen_namespace_die): Call add_pubname_string.
5225         (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
5226         produce pubnames and pubtypes sections to output_pubnames.
5227         * common.opt (-gpubnames): New option.
5228         * doc/invoke.texi: Document it.
5230 2012-06-21  Steven Bosscher  <steven@gcc.gnu.org>
5232         * config/m32c/m32c-pragma.c: Remove unnecessary includes.
5234 2012-06-21  Michael Matz  <matz@suse.de>
5236         PR middle-end/53688
5237         * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
5238         with correct size.
5240 2012-06-21  Richard Guenther  <rguenther@suse.de>
5242         * tree-inline.c (estimate_num_insns): Estimate call cost for
5243         tailcalls properly.
5245 2012-06-20  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
5247         * tree.h (DECL_SOURCE_COLUMN): New accessor.
5249 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
5251         * config/i386/i386.md (SINCOS): New int iterator.
5252         (sincos): New int attribute.
5253         (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
5254         SINCOS int iterator.
5255         (*<sincos>_extend<mode>xf2_i387): Macroize insn from
5256         *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.
5258 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
5260         * config/i386/i386.md (RDFSGSBASE): New int iterator.
5261         (WRFSGSBASE): Ditto.
5262         (fsgs): New int attribute.
5263         (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
5264         RDFSGSBASE int iterator.
5265         (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
5266         WRFSGSBASE int iterator.
5268 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
5270         * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
5271         from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
5272         (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
5273         from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
5274         int iterator.
5276 2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>
5278         * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
5280 2012-06-20  Richard Guenther  <rguenther@suse.de>
5282         PR tree-optimization/30318
5283         * tree-vrp.c (range_int_cst_p): Do not reject overflowed
5284         constants here.
5285         (range_int_cst_singleton_p): But explicitely here.
5286         (zero_nonzero_bits_from_vr): And here.
5287         (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
5288         to cover all cases we can perform arbitrary precision
5289         arithmetic with double-ints.
5290         (intersect_ranges): Handle adjacent anti-ranges.
5292 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
5294         * config/i386/i386.md (rounding_insn): New int attribute.
5295         (<rounding_insn>xf2): Macroize insn from
5296         {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
5297         (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.
5299 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
5301         * config/i386/i386.md (IEEE_MAXMIN): New int iterator.
5302         (ieee_maxmin): New int attribute.
5303         (*ieee_s<ieee_maxmin><mode>3): Macroize insn from
5304         *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.
5306 2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>
5308         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
5309         * config/arm/arm.c: Do not include c-pragma.h.
5310         (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
5311         (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
5312         to arm_emit_eabi_attribute.
5313         * arm-c.c: Do not include output.h.
5314         (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
5315         call to arm_emit_eabi_attribute.
5316         * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
5318 2012-06-20  Richard Guenther  <rguenther@suse.de>
5320         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
5321         Allow adjusting alignment of user-aligned decls again.
5323 2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>
5325         * config/rl78/rl78-c.c: Remove unnecessary includes.
5327 2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>
5329         * config/cris/cris.c: Include cgraph.h.
5330         (cris_option_override): Do not set non-existing flag_no_gcc_ident.
5332 2012-06-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
5334         * emit-rtl.c (need_atomic_barrier_p): New function.
5335         * emit-rtl.h (need_atomic_barrier_p): Declare it.
5336         * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
5337         * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
5338         * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
5339         * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
5340         (mips_process_sync_loop): Use generic version instead.
5342 2012-06-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
5344         * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
5345         it is used.
5347 2012-06-19  Tom de Vries  <vries@codesourcery.com>
5348             Maxim Kuvyrkov  <maxim@codesourcery.com>
5350         * config/mips/constraints.md (ZR): New constraint.
5351         * config/mips/predicates.md (mem_noofs_operand): New predicate.
5352         * config/mips/mips.c (mips_print_operand): Handle new print modifier.
5353         * config/mips/mips.h (TARGET_XLP): Define.
5354         (TARGET_SYNC_AFTER_SC): Update.
5355         (ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
5356         * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
5357         XLP-specific swap and ldadd patterns.
5358         (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.
5360 2012-06-19  Tom de Vries  <vries@codesourcery.com>
5361             Maxim Kuvyrkov  <maxim@codesourcery.com>
5363         * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
5364         (mips_emit_post_atomic_barrier_p): New static functions.
5365         (mips_process_sync_loop): Use them.  Emit sync memory barriers in
5366         accordance with memory model semantics.  Add return of CMP result for
5367         compare_and_swap.
5368         * config/mips/mips.md: Update comment.
5369         (sync_cmp): New attribute.
5370         (sync_memmodel): New attribute replacing sync_release_barrier.
5371         * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
5372         (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
5373         (sync_lock_test_and_set, test_and_set_12): Update.
5374         (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
5375         (atomic_fetch_add, atomic_fetch_add_llsc): New patterns.
5377 2012-06-19  Joseph Myers  <joseph@codesourcery.com>
5379         * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
5380         mov_si<mode>_e500_subreg0.
5381         (*mov_si<mode>_e500_subreg0_elf_low)
5382         (*mov_si<mode>_e500_subreg4_elf_low): New patterns.
5384 2012-06-19  Richard Henderson  <rth@redhat.com>
5386         * config/alpha/alpha.c: Include params.h.
5387         (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
5388         PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.
5390 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
5392         * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
5393         TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
5394         (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
5395         Remove.
5396         * doc/tm.texi: Regenerate.
5397         * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
5398         .objc_class_name_*.
5399         * config/darwin-c.c: Include target.h.
5400         (darwin_objc_declare_unresolved_class_reference): New function.
5401         (darwin_objc_declare_class_definition): New function.
5402         (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
5403         (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.
5405 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
5407         * target.def (output_ident): New hook.
5408         * targhooks.h (default_asm_output_ident_directive): Add prototype.
5409         * varasm.c (assemble_asm): Only prefix a tab if the string does not
5410         already start with one.
5411         (default_asm_output_ident_directive): New function to emit
5412         .ident as a top-level asm node while parsing, or directly to
5413         asm_out_file after parsing.
5414         * toplev.c (compile_file): Print a GCC .ident with
5415         targetm.asm_out.output_ident.
5416         * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
5417         (TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
5418         * doc/tm.texi: Update.
5420         * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
5421         (TARGET_ASM_OUTPUT_IDENT): Define.
5422         * config/i386/djgpp.h (IDENT_ASM_OP): Remove.
5423         * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
5424         * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
5425         * config/sparc/sparc.h (IDENT_ASM_OP): Remove.
5426         (TARGET_ASM_OUTPUT_IDENT): Define.
5427         * config/picochip/picochip.h (IDENT_ASM_OP): Remove.
5428         (TARGET_ASM_OUTPUT_IDENT): Define.
5430         * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
5431         * config/cris/cris.c (cris_asm_output_ident): New function.
5432         * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
5434         * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
5435         Add prototype.
5436         * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
5437         (microblaze_asm_output_ident): Rewrite to work similar to
5438         default_asm_output_ident_directive for front-end .idents.
5439         * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
5440         (TARGET_ASM_OUTPUT_IDENT): Define.
5442         * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
5443         * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.
5445         * config/rx/rx.c: Include cgraph.h for add_asm_node.
5446         (rx_asm_output_ident): New function, similar to
5447         default_asm_output_ident_directive, but handle AS100 syntax also, so
5448         that #ident also works for rx in AS100 syntax.
5449         (TARGET_ASM_OUTPUT_IDENT): Define.
5450         * config/rx/rx.h (IDENT_ASM_OP): Remove.
5452         * Makefile.in: Fix dependencies for c-family/c-lex.o.
5454 2012-06-19  Uros Bizjak  <ubizjak@gmail.com>
5456         * config/i386/i386.md (FIST_ROUNDING): New int iterator.
5457         (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
5458         (ROUNDING): Ditto.
5459         (*fist<mode>2_<rounding>_1): Macroize insn from
5460         *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
5461         (fistdi2_<rounding>): Macroize insn from
5462         fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
5463         (fistdi2_<rounding>_with_temp and splitters): Macroize insn and
5464         corresponding splitters from fistdi2_{floor,ceil} and corresponding
5465         splitters using FIST_ROUNDING int iterator.
5466         (fist<mode>2_<rounding>): Macroize insn from
5467         fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
5468         (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
5469         corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
5470         splitters using FIST_ROUNDING int iterator.
5471         (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
5472         using FIST_ROUNDING int iterator.
5474 2012-06-19  Richard Henderson  <rth@redhat.com>
5476         * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
5477         * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
5478         * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
5479         * config/i386/sse.md (sse2_mulv4si3): Delete.
5480         (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
5481         nonimmediate_or_const_vector_operand.
5483 2012-06-19  Richard Henderson  <rth@redhat.com>
5485         * expmed.c (struct init_expmed_rtl): Split ...
5486         (init_expmed_one_mode): ... out of ...
5487         (init_expmed): ... here.  Initialize integer vector modes also.
5488         (synth_mult): Handle integer vector modes.
5489         (choose_mult_variant): Likewise.
5490         (expand_mult_const): Likewise.
5491         (expand_mult): Likewise.
5492         * machmode.h (GET_MODE_UNIT_BITSIZE): New.
5494 2012-06-19  Richard Henderson  <rth@redhat.com>
5496         * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
5497         integral vector modes.
5499 2012-06-19  Uros Bizjak  <ubizjak@gmail.com>
5501         * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
5502         (rounding): New int attribute.
5503         (ROUNDING): Ditto.
5504         (frndintxf2_<rounding>): Macroize insn from
5505         frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
5506         (frndintxf2_<rounding>_i387): Macroize insn from
5507         frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.
5509 2012-06-19  Richard Guenther  <rguenther@suse.de>
5511         * tree-vrp.c (union_ranges): New function.
5512         (vrp_meet_1): Use union_ranges.
5513         (vrp_meet): Dump what we union and call vrp_meet_1.
5515 2012-06-19  Richard Earnshaw  <rearnsha@arm.com>
5517         * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
5518         (attr type): Remove fmul, ffmul, farith, ffarith, float_em
5519         f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
5520         (attr write_conflict, attr core_cycles): Update.
5521         * arm-generic.md (r_mem_f_wbuf): Delete reservation.
5523 2012-06-19  Richard Guenther  <rguenther@suse.de>
5525         * tree-vrp.c (intersect_ranges): Handle more cases.
5526         (vrp_intersect_ranges): Dump what we intersect and call ...
5527         (vrp_intersect_ranges_1): ... this.
5529 2012-06-19  Richard Guenther  <rguenther@suse.de>
5531         PR tree-optimization/53708
5532         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
5533         user-supplied alignment and alignment of decls with the used
5534         attribute.
5536 2012-06-18  Lawrence Crowl  <crowl@google.com>
5538         * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
5539         (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
5540         (TV_PHASE_STREAM_IN): New.
5541         (TV_PHASE_STREAM_OUT): New.
5542         * timevar.c (validate_phases): New.
5543         (timevar_print): Call validate_phases.
5544         * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
5545         to TV_PHASE_OPT_GEN.
5546         * langhooks.c (write_global_declarations): Rename use of
5547         TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN.  Use TV_PHASE_DBGINFO instead of
5548         TV_PHASE_CHECK_DBGINFO.
5549         * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
5550         TV_PHASE_LATE_ASM.  Move start of TV_PHASE_LATE_ASM to after call to
5551         lang_hooks.decls.final_write_globals.
5553 2012-06-18  David Edelshn  <dje.gcc@gmail.com>
5555         * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.
5557 2012-06-18  Uros Bizjak  <ubizjak@gmail.com>
5559         PR target/53712
5560         * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
5561         (*sse4_2_pcmpistr_unaligned): New.
5563 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
5564             Sameera Deshpande  <sameera.deshpande@arm.com>
5565             Greta Yorsh  <greta.yorsh@arm.com>
5567         * config/arm/arm-protos.h (arm_output_epilogue): Remove.
5568         * config/arm/arm.c (print_multi_reg): Remove.
5569         (vfp_output_fldmd): Likewise.
5570         (arm_output_epilogue): Likewise.
5571         * config/arm/arm.md (epilogue_insns): Update condition and code.
5573 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
5574             Sameera Deshpande  <sameera.deshpande@arm.com>
5575             Greta Yorsh  <greta.yorsh@arm.com>
5577         * config/arm/arm-protos.h (thumb2_expand_return): New declaration.
5578         * config/arm/arm.c (thumb2_expand_return): New function.
5579         * config/arm/arm.md (return): Update condition and code.
5581 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
5582             Sameera Deshpande  <sameera.deshpande@arm.com>
5583             Greta Yorsh  <greta.yorsh@arm.com>
5585         * config/arm/arm-protos.h (output_return_instruction): New parameter
5586         and int to bool change of parameter types.
5587         * config/arm/arm.c (output_return_instruction): Likewise.
5588         * config/arm/arm.md (arm_simple_return): New pattern.
5589         (arm_return, cond_return, cond_return_inverted): Add new arguments.
5590         * config/arm/thumb2.md (thumb2_return): Update condition and code.
5592 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
5593             Sameera Deshpande  <sameera.deshpande@arm.com>
5594             Greta Yorsh  <greta.yorsh@arm.com>
5596         * config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
5597         * config/arm/arm.c (arm_expand_epilogue): New function.
5598         * config/arm/arm.md (epilogue): Update condition and code.
5599         (sibcall_epilogue): Likewise.
5601 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
5602             Sameera Deshpande  <sameera.deshpande@arm.com>
5603             Greta Yorsh  <greta.yorsh@arm.com>
5605         * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
5606         * config/arm/arm.md (arm_addsi3) Add an alternative.
5608 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
5609             Sameera Deshpande  <sameera.deshpande@arm.com>
5610             Greta Yorsh  <greta.yorsh@arm.com>
5612         * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
5613         * config/arm/predicates.md (pop_multiple_fp) New special predicate.
5614         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
5616 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
5617             Sameera Deshpande  <sameera.deshpande@arm.com>
5618             Greta Yorsh  <greta.yorsh@arm.com>
5620         * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
5621         (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
5622         (pop_multiple_with_return, ldr_with_return) Likewise.
5623         * config/arm/predicates.md (pop_multiple_return) New special predicate.
5624         * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
5625         * config/arm/arm.c (arm_output_multireg_pop) New function.
5626         (arm_emit_multi_reg_pop): New function.
5628 2012-06-18  Greta Yorsh  <Greta.Yorsh@arm.com>
5630         * config/arm/arm.c (ldm_stm_operation_p): Require SP
5631         as base register for loads if SP is in the register list.
5633 2012-06-18  Richard Guenther  <rguenther@suse.de>
5635         PR tree-optimization/53693
5636         * tree-vect-patterns.c (vect_operation_fits_smaller_type):
5637         Reject operands with more than one use.
5639 2012-06-18  Bill Schmidt  <wschmidt@linux.ibm.com>
5641         PR tree-optimization/53703
5642         * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
5643         correctly set bb_for_def[12].
5645 2012-06-18  Steven Bosscher  <steven@gcc.gnu.org>
5647         * config/vax/vax.h (VMS_TARGET): Remove.
5649 2012-06-18  Richard Guenther  <rguenther@suse.de>
5651         * tree-vrp.c (extract_range_from_assert): Split out range
5652         intersecting code.
5653         (intersect_ranges): New function.
5654         (vrp_intersect_ranges): Likewise.
5656 2012-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5658         * config/s390/s390.c (s390_gimplify_va_arg): Revert change from
5659         r187965.
5661 2012-06-18  Tejas Belagod  <tejas.belagod@arm.com>
5663         * doc/md.texi: Document int iterators.
5664         * read-rtl.c (ints): New iterator group.
5665         (find_int): Int iterator group callback.
5666         (apply_int_iterator): Likewise.
5667         (apply_iterators): Traverse int iterator table and add all the used
5668         iterators to list.
5669         (initialize_iterators): Initialize data structures and callbacks for
5670         int iterators.
5671         (read_rtx): Parse and read mappings for int iterators.
5672         (read_rtx_code): Record int iterator usage.
5674 2012-06-18  Richard Sandiford  <rdsandiford@googlemail.com>
5676         PR middle-end/53698
5677         * expr.c (expand_expr_addr_expr_1): Convert to tmode before
5678         performing an addition.
5680 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
5682         * output.h (split_double): Move prototype to rtl.h.
5683         (constructor_static_from_elts_p): Move prototype to tree.c.
5684         * rtl.h (split_double): Moved here from output.h.
5685         * tree.h (constructor_static_from_elts_p): Moved here from output.h.
5686         * final.c (split_double): Move from here ...
5687         * rtlanal.c (split_double): ... to here.
5688         * expr.c: Do not include output.h.
5690 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
5692         * cfglayout.h: Remove.
5693         * cfglayout.c: Remove.
5694         * function.h (struct function): Remove x_last_location field.
5695         * function.c: Do not include cfglayout.h.
5696         (expand_function_start): Do not call no-op force_next_line_note.
5697         (expand_function_end): Likewise.
5698         * cfgrtl.c: Do not include cfglayout.h.  Include gt-cfgrtl.h.
5699         (unlink_insn_chain): Moved here from cfglayout.c.
5700         (skip_insns_after_block, label_for_bb, record_effective_endpoints,
5701         into_cfg_layout_mode, outof_cfg_layout_mode,
5702         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
5703         relink_block_chain, fixup_reorder_chain, verify_insn_chain,
5704         fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
5705         cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
5706         cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
5707         cfg_layout_finalize): Likewise.
5708         (rtl_can_remove_branch_p): Likewise.
5709         * rtl.h (insn_scope): Move prototype from cfglayout.h here.
5710         (duplicate_insn_chain): Likewise.
5711         (force_next_line_note): Remove prototype.
5712         * emit-rtl.c: Do not include tree-flow.h, egad.  Include vecprim.h.
5713         (last_location): Remove #define to emit.x_last_location.
5714         (force_next_line_note): Remove no-op function.
5715         (init_emit): Don't set x_last_location.
5716         (block_locators_locs, block_locators_blocks, locations_locators_locs,
5717         locations_locators_vals, prologue_locator, epilogue_locator,
5718         curr_location, last_location, curr_block, last_block, curr_rtl_loc):
5719         Move POD to here from cfglayout.c.
5720         (insn_locators_alloc, insn_locators_finalize, insn_locators_free,
5721         set_curr_insn_source_location, get_curr_insn_source_location,
5722         set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
5723         locator_scope, insn_scope, locator_location, locator_line, insn_line,
5724         locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
5725         * cfghooks.h: Remove double-include protection.
5726         (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
5727         * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
5728         * final.c: Do not include cfglayout.h.
5729         (choose_inner_scope, change_scope): Move to here from cfglayout.c.
5730         (reemit_insn_block_notes): Likewise.  Make static.
5731         * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
5732         operation_could_trap_p, tree_could_throw_p): Move from here...
5733         * tree.h: ... to here.
5734         * gengtype.c (open_base_files): Remove cfglayout.h from the list.
5735         * profile.c: Do not include cfghooks.h.
5736         * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
5737         * modulo-sched.c: Likewise.
5738         * loop-unswitch.c: Do not include cfglayout.h.
5739         * sched-ebb.c: Likewise.
5740         * tracer.c: Likewise.
5741         * ddg.c: Likewise.
5742         * tree-vect-loop-manip.c: Likewise.
5743         * loop-init.c: Likewise.
5744         * dwarf2out.c: Likewise.
5745         * hw-doloop.c: Likewise.
5746         * loop-unroll.c: Likewise.
5747         * cfgcleanup.c: Likewise.
5748         * bb-reorder.c: Likewise.
5749         * sched-rgn.c: Likewise.
5750         * tree-cfg.c: Likewise.
5751         * config/alpha/alpha.c: Likewise.
5752         * config/spu/spu.c: Likewise.
5753         * config/sparc/sparc.c: Likewise.
5754         * config/sh/sh.c: Likewise.
5755         * config/c6x/c6x.c: Likewise.
5756         * config/ia64/ia64.c: Likewise.
5757         * config/rs6000/rs6000.c: Likewise.
5758         * config/score/score.c: Likewise.
5759         * config/mips/mips.c: Likewise.
5760         * config/bfin/bfin.c: Likewise.
5761         * Makefile.in (CFGAYOUT_H): Remove, and fixup users.
5762         * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
5763         * config/spu/t-spu-elf (spu.o: $): Likewise.
5764         * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
5766 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
5768         * cfgloop.h: Do not include rtl.h.
5769         (enum iv_extend_code): New.
5770         (struct rtx_iv): Use iv_extend_code instead of rtx_code.
5771         * Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
5772         * loop-iv.c (iv_extend_to_rtx_code): New function to translate
5773         an IV_EXTEND_CODE to an RTX_CODE.
5774         (dump_iv_info): Update for rtx_iv field type change.
5775         (iv_constant): Likewise.
5776         (iv_subreg): Likewise.
5777         (iv_extend): Likewise.
5778         (iv_neg): Likewise.
5779         (iv_add): Likewise.
5780         (iv_mult): Likewise.
5781         (iv_shift): Likewise.
5782         (get_biv_step_1): Likewise.
5783         (get_biv_step): Likewise.
5784         (iv_analyze_biv): Likewise.
5785         (get_iv_value): Likewise.
5786         (shorten_into_mode): Likewise.
5787         (canonicalize_iv_subregs): Likewise.
5788         * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
5789         of MAY_HAVE_DEBUG_INSNS.
5790         * tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
5791         * tree-ssa-loop-prefetch.c: Likewise.
5793 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
5795         * expmed.c (ceil_log2): Move from here...
5796         * hwint.c: ... to here for older GCCs...
5797         * hwint.h: ... and here for newer GCCs.
5798         * rtl.h (ceil_log2): Remove prototype.
5800         * tree-phinodes.c: Do not include rtl.h.
5801         * Makefile.in (tree-phinodes.o): Do not depend on RTL_H.
5803 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
5805         * config/cris/cris.h (TARGET_ELF): Remove.
5806         (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
5807         (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
5808         (LOCAL_LABEL_PREFIX): Likewise.
5809         * config/cris/cris.c (cris_target_asm_named_section): Remove.
5810         (cris_option_override): Simpify using TARGET_ELF==1.
5811         (cris_file_start): Likewise.
5812         * config/cris/cris-protos.h (cris_target_asm_named_section): Remove.
5814 2012-06-17  Uros Bizjak  <ubizjak@gmail.com>
5816         * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
5818 2012-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5820         PR middle-end/53590
5821         * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.
5823 2012-06-15  Easwaran Raman  <eraman@google.com>
5825         * passes.c (init_optimization_passes): Remove pass_call_cdce
5826         from its current position and insert after pass_dce.
5828 2012-06-15  Walter Lee  <walt@tilera.com>
5830         * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
5832 2012-06-15  Richard Earnshaw  <rearnsha@arm.com>
5834         * arm.c (note_invalid_constants): Don't return a result.
5835         (arm_memory_load_p): Delete function.
5836         (arm_const_double_rtx): Delete iterator variable i;
5837         (fp_immediate_constant): Likewise.
5838         (fp_const_from_val): Likewise.
5840         * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.
5842 2012-06-15  Marc Glisse  <marc.glisse@inria.fr>
5844         PR c++/51033
5845         * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
5846         * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.
5848 2012-06-15  Georg-Johann Lay  <avr@gjlay.de>
5850         * config/avr/avr.c (avr_default_expand_builtin): New function.
5851         (avr_expand_builtin): Use it.
5852         (avr_expand_unop_builtin): Remove.
5853         (avr_expand_binop_builtin): Remove.
5854         (avr_expand_triop_builtin): Remove.
5856 2012-06-15  Michael Matz  <matz@suse.de>
5858         PR middle-end/38474
5859         * cfgexpand.c (add_alias_set_conflicts): Remove.
5860         (expand_used_vars): Don't call it.
5861         (aggregate_contains_union_type): Remove.
5862         * function.c (n_temp_slots_in_use): New static data.
5863         (make_slot_available, assign_stack_temp_for_type): Update it.
5864         (init_temp_slots): Zero it.
5865         (remove_unused_temp_slot_addresses): Use it for quicker removal.
5866         (remove_unused_temp_slot_addresses_1): Use htab_clear_slot.
5868 2012-06-15  Michael Matz  <matz@suse.de>
5870         * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
5871         argument, don't emit assign statement if value is directly usable.
5872         (gimplify_expr): Adjust.
5874 2012-06-15  Michael Matz  <matz@suse.de>
5876         * gimplify.c (gimplify_modify_expr): Fold generated statements.
5877         * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.
5879 2012-06-15  Richard Guenther  <rguenther@suse.de>
5881         * tree-vrp.c (set_and_canonicalize_value_range): Use canonical
5882         predicates to set VR_UNDEFINED and VR_VARYING.  Drop a case
5883         we assert for in set_value_range to VR_VARYING.
5885 2012-06-15  Richard Earnshaw  <rearnsha@arm.com>
5887         * arm.md (addsf3, adddf3): Use s_register_operand.
5888         (subsf3, subdf3): Likewise.
5889         (mulsf3, muldf3): Likewise.
5890         (difsf3, divdf3): Likewise.
5891         (movsfcc, movdfcc): Likewise.
5892         * predicates.md (f_register_operand): Delete.
5893         (arm_float_rhs_operand): Delete.
5894         (arm_float_add_operand): Delete.
5895         (arm_float_compare_operand): Use s_register_operand when
5896         there's no VFP.
5897         (cirrus_register_operand): Delete.
5898         (cirrus_fp_register): Delete.
5899         (cirrus_shift_const): Delete.
5900         (cmpdi_operand): Remove Maverick support.
5901         * constraints.md (f, v, H): Delete constraints.
5902         (G): Update documentation.
5903         * arm.c (fp_consts_inited): Convert to bool.
5904         (strings_fp): Delete.
5905         (values_fp): Delete.
5906         (value_fp0): New variable.
5907         (init_fp_table): Simplify logic.
5908         (arm_const_double_rtx): Likewise.
5909         (fp_immediate_constant): Likewise.
5910         (fp_const_from_val): Likewise.
5911         (neg_const_double_rtx_ok_for_fpa): Delete.
5912         * doc/md.texi (ARM constraints): Update documentation.
5914 2012-06-15  Ulrich Weigand  <ulrich.weigand@linaro.org>
5916         PR tree-optimization/53636
5917         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
5918         stride when doing basic-block vectorization.
5920 2012-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5922         * tree-vect-generic.c (lower_vec_perm): Propagate vector constants
5923         into VEC_PERM_EXPR.
5925 2012-06-15  Jakub Jelinek  <jakub@redhat.com>
5927         * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
5928         allocate and free bbs array for the SLP case.
5930         PR tree-optimization/51581
5931         * expr.h (choose_multiplier): New prototype.
5932         * expmed.c (choose_multiplier): No longer static.
5933         Change multiplier_ptr from rtx * to UHWI *.
5934         (expand_divmod): Adjust callers.
5935         * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
5936         (vect_recog_divmod_pattern): ... this.  Pass bb_vinfo as last
5937         argument to new_stmt_vec_info.  Attempt to optimize also divisions
5938         by non-pow2 constants if integer vector division isn't supported.
5939         * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
5940         don't look at pattern stmts and sequences.
5942 2012-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5944         PR middle-end/53590
5945         * common.opt (-fdelete-dead-exceptions): New switch.
5946         * doc/invoke.texi (Code Gen Options): Document it.
5947         * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
5948         insn_could_throw_p predicate.  Do not skip an insn that could throw
5949         if dead exceptions can be deleted.
5950         (insn_live_p): Likewise, do not return true in that case.
5951         * dce.c (can_alter_cfg): New flag.
5952         (deletable_insn_p): Do not return false for an insn that can throw if
5953         the CFG can be altered and dead exceptions can be deleted.
5954         (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
5955         * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
5956         predicate. Do not preserve an insn that could throw if dead exceptions
5957         can be deleted.
5958         * function.h (struct function): Add can_delete_dead_exceptions flag.
5959         * function.c (allocate_struct_function): Set it.
5960         * lto-streamer-in.c (input_struct_function_base): Stream it.
5961         * lto-streamer-out.c (input_struct_function_base): Likewise.
5962         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
5963         statement that could throw as necessary if dead exceptions can be
5964         deleted.
5966 2012-06-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
5968         * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
5970 2012-06-14  Oleg Endo  <olegendo@gcc.gnu.org>
5972         PR target/53568
5973         * config/sh/sh.md: Add peephole for swapbsi2.
5974         (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.
5976 2012-06-14  Uros Bizjak  <ubizjak@gmail.com>
5978         * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
5979         (*zero_extendsidi2_rex64): Ditto.  Remove isa attribute.
5981 2012-06-14  Jakub Jelinek  <jakub@redhat.com>
5983         PR target/53639
5984         * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.
5986 2012-06-14  Richard Earnshaw  <rearnsha@arm.com>
5988         * arm.c (arm_cirrus_insn_p): Delete.
5989         (cirrus_reorg): Delete.
5990         (arm_reorg): Don't call cirrus_reorg.
5991         (arm_final_prescan_insn_p): Don't check for cirrus insns.
5992         * arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
5993         (adddi3, subdi3): Remove Maverick support.
5994         (arm_adddi3): Likewise.
5995         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
5996         (addsf3, adddf3): Likewise.
5997         (subsf3, subdf3): Likewise.
5998         (mulsf3, muldf3): Likewise.
5999         (ashldi3, ashrdi3, lshrdi3): Likewise.
6000         (floatsisf2, floatsidf2): Likewise.
6001         (fix_truncsfsi2, fix_truncdfsi2): Likewise.
6002         (arm_movdi, thumb1_movdi_insn): Likewise.
6003         (arm_cmpdi_insn): Likewise.
6004         (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
6005         (cirrus.md): Don't include.
6006         * cirrus.md: Delete file.
6007         * t-arm (MD_INCLUDES): Remove cirrus.md.
6009 2012-06-14  Eric Botcazou  <ebotcazou@adacore.com>
6011         * dwarf2out.c (function_possibly_abstracted_p): New static function.
6012         (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
6013         cgraph_function_possibly_inlined_p.
6014         (gen_inlined_subroutine_die): Return if the origin is to be ignored.
6015         (process_scope_var): Do not emit concrete instances of abstracted
6016         nested functions from here.
6017         (gen_decl_die): Emit the abstract instance if the function is possibly
6018         abstracted and not only possibly inlined.
6019         (dwarf2out_finish): Find the first non-abstract parent instance and
6020         attach concrete instances on the limbo list to it.
6022 2012-06-14  Richard Earnshaw  <rearnsha@arm.com>
6024         * arm.md (divsf3, divdf3): Remove FPA support.
6025         (negsf2, negdf2): Likewise.
6026         (sqrtsf2, sqrtdf2): Likewise.
6027         (movdfcc): Likewise.
6028         (modsf3, moddf3, movxf): Delete.
6029         (push_fp_multi): Delete.
6030         (fpa.md): Don't include it.
6031         * fpa.md: Delete file.
6032         * t-arm (MD_INCLUDES): Remove fpa.md.
6034 2012-06-14  Bill Schmidt  <wschmidt@linux.ibm.com>
6036         * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
6037         (cost_for_stmt): Remove decl.
6038         (vect_get_single_scalar_iteration_cost): Correct typo in name.
6039         * tree-vect-loop.c (vect_get_cost): Remove.
6040         (vect_get_single_scalar_iteration_cost): Correct typo in name; use
6041         vect_get_stmt_cost rather than vect_get_cost.
6042         (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
6043         vect_get_cost.
6044         (vect_estimate_min_profitable_iters): Correct typo in call to
6045         vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
6046         than vect_get_cost.
6047         (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
6048         vect_get_cost.
6049         (vect_model_induction_cost): Likewise.
6050         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
6051         typo in call to vect_get_single_scalar_iteration_cost.
6052         * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
6053         (cost_for_stmt): Remove unnecessary function.
6054         * Makefile.in (TREE_VECTORIZER_H): Update dependencies.
6056 2012-06-14  Richard Earnshaw  <rearnsha@arm.com>
6058         * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
6059         * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
6060         * arm-tables.opt: Regenerated.
6061         * doc/invoke.texi: Remove references to deleted options.
6063 2012-06-14  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>
6065         * config/h8300/genmova.sh: Modified to add offset bits of
6066         mova/Sz assembly instruction for memory access.
6067         * config/h8300/h8300.c: Likewise.
6068         * config/h8300/mova.md: Likewise.
6070 2012-06-12  Christian Bruel  <christian.bruel@st.com>
6072         PR target/53621
6073         * config/sh/sh.c (sh_option_override): Don't force
6074          flag_omit_frame_pointer and maccumulate_outgoing_args.
6075         * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
6077 2012-06-14  Richard Guenther  <rguenther@suse.de>
6079         * tree-vrp.c (VR_INITIALIZER): New define.
6080         (ranges_from_anti_range): New function.
6081         (extract_range_from_binary_expr_1): Decompose operations on
6082         VR_ANTI_RANGEs to operations on VR_RANGE.
6083         (extract_range_from_unary_expr_1): Likewise.
6084         (extract_range_from_binary_expr_1, extract_range_from_binary_expr,
6085         extract_range_from_unary_expr_1, extract_range_from_unary_expr,
6086         extract_range_from_cond_expr, adjust_range_with_scev,
6087         vrp_visit_assignment_or_call, vrp_visit_phi_node,
6088         simplify_bit_ops_using_ranges): Use VR_INITIALIZER.
6090 2012-06-13  Richard Henderson  <rth@redhat.com>
6092         * hwint.h (HOST_WIDEST_INT_C): New.
6093         (HOST_WIDE_INT_C): New.
6094         (HOST_WIDE_INT_1): Use it.
6095         * config/alpha/alpha.c (alpha_trampoline_init): Use it.
6097 2012-06-13  Alexandre Oliva  <aoliva@redhat.com>
6099         PR debug/49888
6100         * var-tracking.c: Include alias.h.
6101         (overlapping_mems): New struct.
6102         (drop_overlapping_mem_locs): New.
6103         (clobber_overlapping_mems): New.
6104         (var_mem_delete_and_set, var_mem_delete): Call it.
6105         (val_bind): Likewise, but only if modified.
6106         (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
6107         * Makefile.in (var-tracking.o): Depend in $(ALIAS_H).
6109 2012-06-13  Alexandre Oliva  <aoliva@redhat.com>
6111         PR debug/47624
6112         * var-tracking.c (loc_exp_dep_pool): New.
6113         (vt_emit_notes): Create and release the pool.
6114         (compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
6115         (emit_notes_in_bb): Likewise.
6116         (loc_exp_dep_insert): Deal with NOT_ONEPART vars.
6117         (notify_dependents_of_changed_value): Likewise.
6118         (notify_dependents_of_resolved_value): Check that NOT_ONEPART
6119         variables don't have a VAR_LOC_DEP_LST.
6120         (emit_note_insn_var_location): Expand NOT_ONEPART locs that are
6121         VALUEs or MEMs of VALUEs.
6123 2012-06-13  Alexandre Oliva  <aoliva@redhat.com>
6125         PR debug/52983
6126         PR debug/48866
6127         * dce.c (word_dce_process_block): Insert debug temps only if the
6128         insn is not marked.
6129         (dce_process_block): Likewise, and if debug.used is not empty,
6130         and only after iterating over all DEFs that might mark the insn.
6132 2012-06-13  Alexandre Oliva  <aoliva@redhat.com>
6134         * common.opt (ftree-coalesce-inlined-vars): New.
6135         (ftree-coalesce-vars): New.
6136         * doc/invoke.texi: Document them.
6137         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
6138         Implement them.
6140 2012-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
6142         * read-rtl.c (mapping): Remove index field.  Add current_value field.
6143         Define heap vectors.
6144         (iterator_group): Fix long line.  Remove num_builtins field and
6145         uses_iterator fields.  Make apply_iterator take a void * parameter.
6146         (iterator_use, atttribute_use): New structures.
6147         (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
6148         (current_iterators, iterator_uses, attribute_uses): New variables.
6149         (uses_mode_iterator_p, uses_code_iterator_p): Delete.
6150         (apply_mode_iterator, apply_code_iterator): Take a void * parameter.
6151         (map_attr_string, apply_iterator_to_string): Remove iterator
6152         and value parameters.  Look through all current iterator values
6153         for a matching attribute.
6154         (mode_attr_index, apply_mode_maps): Delete.
6155         (apply_iterator_to_rtx): Replace with...
6156         (copy_rtx_for_iterators): ...this new function.
6157         (uses_iterator_p, apply_iterator_traverse): Delete.
6158         (apply_attribute_uses, add_current_iterators, apply_iterators): New
6159         functions.
6160         (add_mapping): Remove index field.  Set current_value field.
6161         (initialize_iterators): Don't set num_builtins and uses_iterator_p
6162         fields.
6163         (find_iterator): Delete.
6164         (record_iterator_use, record_attribute_use): New functions.
6165         (record_potential_iterator_use): New function.
6166         (check_code_iterator): Remove handling of bellwether codes.
6167         (read_rtx): Remove mode maps.  Truncate iterator and attribute uses.
6168         (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
6169         parameter.  Use the first code iterator value instead of the
6170         bellwether_codes array.  Use record_potential_iterator_use for modes.
6172 2012-06-13  Oleg Endo  <olegendo@gcc.gnu.org>
6174         PR target/53568
6175         * config/sh/sh.md (bswapsi2): New expander.
6176         (swapbsi2): New insn.
6178 2012-06-13  H.J. Lu  <hongjiu.lu@intel.com>
6180         PR target/53647
6181         * config/i386/i386.c (ix86_tune_cost): New variable.
6182         (ix86_option_override_internal): Set ix86_tune_cost.  Use
6183         ix86_tune_cost for simultaneous_prefetches, prefetch_block,
6184         l1_cache_size and l2_cache_size.
6186 2012-06-13  Richard Guenther  <rguenther@suse.de>
6188         * tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
6189         Handle meeting two VR_RANGE to an VR_ANTI_RANGE.  Implement
6190         all possible meetings of VR_RANGE with VR_ANTI_RANGE and
6191         VR_ANTI_RANGE with VR_ANTI_RANGE.
6193 2012-06-13  Richard Earnshaw  <rearnsha@arm.com>
6195         * config.gcc (unsupported): Move obsoleted FPA-based configurations
6196         here from ...
6197         (obsolete): ... here.
6198         (arm*-*-freebsd*): Remove.
6199         (arm*-*-linux*): Only accept EABI variants.  Simplify logic.
6200         (arm*-*-uclinux*): Likewise.
6201         (arm*-*-ecos-elf): Remove.
6202         (arm*-*-rtems*): Remove.
6203         (arm*-*-elf): Remove.
6204         (arm*-wince-pe*): Remove.
6205         (arm, --with-fpu): Remove support for fpa and Maverick variants.
6206         * arm/ecos-elf.h: Delete.
6207         * arm/t-strongarm-elf: Delete.
6208         * arm/rtems-elf.h: Delete.
6209         * arm/wince-pe.h: Delete.
6210         * arm/pe.c: Delete.
6211         * arm/pe.h: Delete.
6212         * arm/t-wince-pe: Delete.
6214 2012-06-13  Bill Schmidt  <wschmidt@linux.ibm.com>
6216         PR tree-optimization/53647
6217         * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
6218         targets with no defined cache line size.
6220 2012-06-13  Bill Schmidt  <wschmidt@linux.ibm.com>
6222         * targhooks.c (default_builtin_vectorized_conversion): Handle
6223         vec_construct, using vectype to base cost on subparts.
6224         * target.h (enum vect_cost_for_stmt): Add vec_construct.
6225         * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
6226         instead of scalar_to-vec.
6227         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
6228         vec_construct in same way as default for now.
6229         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
6230         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6231         Handle vec_construct, including special case for 32-bit loads.
6233 2012-06-13  Xinyu Qi <xyqi@marvell.com>
6235         * config/arm/arm.c (FL_IWMMXT2): New define.
6236         (arm_arch_iwmmxt2): New variable.
6237         (arm_option_override): Enable use of iWMMXt with VFP.
6238         Disable use of iWMMXt with NEON. Disable use of iWMMXt under
6239         Thumb mode. Set arm_arch_iwmmxt2.
6240         (arm_expand_binop_builtin): Accept VOIDmode op.
6241         (enum arm_builtins): Revise built-in fcode.
6242         (IWMMXT2_BUILTIN): New define.
6243         (IWMMXT2_BUILTIN2): Likewise.
6244         (iwmmx2_mbuiltin): Likewise.
6245         (builtin_description bdesc_2arg): Revise built in declaration.
6246         (builtin_description bdesc_1arg): Likewise.
6247         (arm_init_iwmmxt_builtins): Revise built in initialization.
6248         (arm_expand_builtin): Revise built in expansion.
6249         (arm_output_iwmmxt_shift_immediate): New function.
6250         (arm_output_iwmmxt_tinsr): Likewise.
6251         * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
6252         (arm_output_iwmmxt_tinsr): Likewise.
6253         * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
6254         (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
6255         (rorv4hi3, rorv2si3, rordi3): Likewise.
6256         (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
6257         (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
6258         (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
6259         (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
6260         (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
6261         (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
6262         (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
6263         (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
6264         (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
6265         (ror<mode>3, ror<mode>3_di): Likewise.
6266         (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
6267         (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
6268         (iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
6269         (iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
6270         (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
6271         (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
6272         (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
6273         (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
6274         (All instruction patterns): Add wtype attribute.
6275         (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
6276         (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
6277         (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
6278         (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
6279         (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
6280         (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
6281         (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
6282         (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
6283         (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
6284         (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
6285         (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
6286         (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
6287         (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
6288         (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
6289         (iwmmxt2.md): Include.
6290         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
6291         (TARGET_IWMMXT2): New define.
6292         (TARGET_REALLY_IWMMXT2): Likewise.
6293         (arm_arch_iwmmxt2): Declare.
6294         * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
6295         Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
6296         Use C name-mangling for intrinsics.
6297         (__v8qi): Redefine.
6298         (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
6299         (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
6300         (_m_from_int): Likewise.
6301         (_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
6302         (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
6303         (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
6304         (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
6305         (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
6306         (_mm_tbcst_pi32): Likewise.
6307         (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
6308         (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
6309         (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
6310         (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
6311         (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
6312         (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
6313         (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
6314         (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
6315         (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
6316         (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
6317         (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
6318         (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
6319         (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
6320         (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
6321         (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
6322         (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
6323         (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
6324         (_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
6325         (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
6326         (_m_to_int): New define.
6327         * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
6328         * config/arm/arm-arches.def (iwmmxt2): Likewise.
6329         * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
6330         iwmmxt2.md.
6331         * config/arm/arm.md (marvell-f-iwmmxt.md): Include.
6332         (arch): Add "iwmmxt2".
6333         (arch_enabled): Handle "iwmmxt2".
6334         (wtype): New attribute.
6335         (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
6336         (UNSPEC_WALIGNI): New unspec.
6337         * config/arm/predicates.md (imm_or_reg_operand): New predicate.
6338         * config/arm/iterators.md (VMMX2): New mode_iterator.
6339         * config/arm/marvell-f-iwmmxt.md: New file.
6340         * config/arm/iwmmxt2.md: New file.
6342 2012-06-12  Jakub Jelinek  <jakub@redhat.com>
6344         PR c/53532
6345         PR c/51034
6346         PR c/53196
6347         * c-decl.c (build_compound_literal): Call c_incomplete_type_error
6348         if type isn't complete.
6350 2012-06-12  Uros Bizjak  <ubizjak@gmail.com>
6352         * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
6354 2012-06-12  Richard Henderson  <rth@redhat.com>
6356         * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
6357         iterator instead of INT.
6359 2012-06-12  Bill Schmidt  <wschmidt@linux.ibm.com>
6361         * opts.c: Add -fhoist-adjacent-loads to -O2 and above.
6362         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
6363         declaration.
6364         (hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
6365         (tree_ssa_phiopt): Call gate_hoist_loads.
6366         (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
6367         (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
6368         hoist_adjacent_loads.
6369         (local_mem_dependence): New function.
6370         (hoist_adjacent_loads): Likewise.
6371         (gate_hoist_loads): Likewise.
6372         * common.opt (fhoist-adjacent-loads): New switch.
6373         * Makefile.in (tree-ssa-phiopt.o): Added dependencies.
6375 2012-06-12  Michael Matz  <matz@suse.de>
6377         * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
6378         (nonoverlapping_memrefs_p): Don't call it here ...
6379         (true_dependence_1): ... but here.
6381 2012-06-12  Richard Guenther  <rguenther@suse.de>
6383         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
6384         * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
6385         and MEM_SIZE only refines it.  Reflect that and be less conservative
6386         if either of the latter is not known.
6388 2012-06-12  Jakub Jelinek  <jakub@redhat.com>
6390         PR rtl-optimization/53589
6391         * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
6392         discovery even when e->dest != target.  If any LABEL_REF points
6393         to e->dest label, redirect it to target's label.
6395 2012-06-12  Chung-Lin Tang  <cltang@codesourcery.com>
6397         * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
6398         condition for generating REG_FRAME_RELATED_EXPR note.
6399         (pop): Add code for generating REG_CFA_RESTORE,
6400         REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
6401         (sh_expand_epilogue): Use frame_insn() for FP to SP move.
6402         Set 'frame_p' of calls to output_stack_adjust() to 'true'.
6404 2012-06-11  Richard Henderson  <rth@redhat.com>
6406         * config/alpha/alpha.c (HWI_HEX2): Add missing shift.
6407         * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.
6409         * config/alpha/alpha.c (alpha_trampoline_init): Split large constants.
6411 2012-06-12  Hans-Peter Nilsson  <hp@axis.com>
6413         * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
6414         Mention that this hook needs to be defined for native TLS.
6415         * doc/tm.texi: Regenerate.
6417 2012-06-11  Mike Stump  <mikestump@comcast.net>
6419         * emit-rtl.c (init_emit_once): Iterate through the
6420         MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
6421         MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
6422         all the MIN_MODE_PARTIAL_INT modes anymore.
6424 2012-06-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
6426         * gcc/config/mips/mips-tables.opt (xlp): Fix merge typo.
6428 2012-06-11  Roland McGrath  <mcgrathr@google.com>
6430         * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
6431         SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
6432         not a VAR_DECL.  Also don't limit it to UNSPECs with exactly one
6433         operand.
6435 2012-06-11  Oleg Endo  <olegendo@gcc.gnu.org>
6437         PR target/53511
6438         * config/sh/sh.md (fmasf4): New expander.
6439         (*macsf3): Rename to fmasf4_i.  Adapt to fma pattern.
6440         (mac_media): Rename to fmasf4_media.  Adapt to fma pattern.
6441         * config/sh/sh.opt (mfused-madd): Remove.
6442         * config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
6443         (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
6444         * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
6445         as extra options.
6446         * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
6447         descriptions.
6449 2012-06-11  Richard Henderson  <rth@redhat.com>
6451         * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.
6453 2012-06-11  Richard Guenther  <rguenther@suse.de>
6455         PR middle-end/53470
6456         * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
6457         replace it with the first non-BLOCK context.
6459 2012-06-11  Richard Guenther  <rguenther@suse.de>
6461         * alias.c (aliases_everything_p): Remove.
6462         (DIFFERENT_ALIAS_SETS_P): Likewise.
6463         (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
6464         Do not use aliases_everything_p or special-case ANDs.  Do not
6465         special-case BLKmode moves.
6466         (may_alias_p): Likewise.  Handle BLKmode similar like everywhere
6467         - for SCATCH only.
6469 2012-06-09  Hans-Peter Nilsson  <hp@axis.com>
6471         Fix CRIS build errors with --enable-build-with-cxx.
6472         * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
6473         variable "and" to "andop".
6474         * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
6475         temporary variable for memory model, passing C++-type-correct
6476         parameter type to expand_mem_thread_fence.
6477         ("atomic_compare_and_swap<mode>"): Ditto.
6479 2012-06-09  Richard Henderson  <rth@redhat.com>
6481         PR c++/53602
6482         * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
6483         (pass_jump): Rename from pass_jump2.
6484         (execute_jump2, pass_jump2): New.
6485         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
6486         perform cfg cleanup here.  Move the test of PUSH_ROUNDING
6487         and ACCUMULATE_OUTGOING_ARGS test...
6488         (gate_handle_stack_adjustments): ... here.
6489         * passes.c (init_optimization_passes): Update for pass_jump2 rename.
6490         Place new pass_jump2 after pass_stack_adjustments.
6491         * tree-pass.h (pass_jump): Declare.
6493 2012-06-09  Kenneth Zadeck <zadeck@naturalbridge.com>
6495         * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
6496         count trucation.
6498 2012-06-08  Richard Henderson  <rth@redhat.com>
6500         PR c++/53602
6501         * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
6502         note to a clobber insn when no other insn is available.
6504 2012-06-08  Georg-Johann Lay  <avr@gjlay.de>
6506         * config/avr/avr.c (avr_case_values_threshold): Return 7.
6508 2012-06-07  Andreas Schwab  <schwab@linux-m68k.org>
6510         * genhooks.c (main): Set progname.
6511         (emit_documentation): Remove variable found_start, always bail out
6512         when a place is missing.
6513         * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.
6515 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
6517         PR middle-end/53580
6518         * omp-low.c (scan_omp): Change first argument to gimple_seq *,
6519         call walk_gimple_seq_mod instead of walk_gimple_seq.
6520         (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
6521         scan_omp_for, scan_omp_sections, scan_omp_single,
6522         execute_lower_omp): Adjust callers.
6523         (scan_omp_1_stmt): Likewise.  If check_omp_nesting_restrictions
6524         returns false, replace stmt with GIMPLE_NOP.
6525         (check_omp_nesting_restrictions): Instead of issuing warnings,
6526         issue errors and return false if any errors were reported.
6528 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
6530         * doc/invoke.texi (fconserve-space): Remove documentation.
6532 2012-06-06  Edmar Wienskoski  <edmar@freescale.com>
6534         * config/rs6000/rs6000-tables.opt: Regenerated.
6536 2012-06-06  Richard Guenther  <rguenther@suse.de>
6538         PR tree-optimization/53081
6539         * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
6540         (adjacent_dr_p): ... this and make it work for reads, too.
6541         * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
6542         (struct partition_s): Change main_stmt to main_dr, add
6543         secondary_dr member.
6544         (build_size_arg_loc): Change to date data-reference and not
6545         gimplify here.
6546         (build_addr_arg_loc): New function split out from ...
6547         (generate_memset_builtin): ... here.  Use it and simplify.
6548         (generate_memcpy_builtin): New function.
6549         (generate_code_for_partition): Adjust.
6550         (classify_partition): Streamline pattern detection.  Detect memcpy.
6551         (ldist_gen): Adjust.
6552         (tree_loop_distribution): Adjust seed statements for memcpy
6553         recognition.
6555 2012-06-06  Matt Turner  <mattst88@gmail.com>
6557         * config/arm/mmintrin.h (_mm_empty): New.
6558         (_m_empty): New.
6560 2012-06-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
6562         * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
6563         * common.opt (fsched-pressure-algorithm=): Remove.
6564         * flag-types.h (sched_pressure_algorithm): Move to...
6565         * sched-int.h (sched_pressure_algorithm): ...here.
6566         * params.def (sched-pressure-algorithm): New param.
6567         * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
6568         * common/config/s390/s390-common.c (s390_option_optimization_table):
6569         Remove OPT_fsched_pressure_algorithm_ entry.
6570         * config/s390/s390.c (s390_option_override): Set a default value for
6571         PARAM_SCHED_PRESSURE_ALGORITHM.
6573 2012-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
6575         PR target/53487
6576         * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
6577         doing an unsigned compare, make sure the second argument is not a
6578         negative constant.
6579         (rs6000_emit_cmove): Don't allow floating point comparisons when
6580         generating ISEL moves.
6582 2012-06-05  Edmar Wienskoski  <edmar@freescale.com>
6584         * config/rs6000/e5500.md: New file.
6585         * config/rs6000/e6500.md: New file.
6586         * config/rs6000/rs6000.c (processor_costs): Add new costs for
6587         e5500 and e6500.
6588         (rs6000_option_override_internal): Altivec and Spe options not
6589         allowed with e5500. Spe options not allowed with e6500. Increase
6590         move inline limit for e5500 and e6500. Disable string instructions
6591         for e5500 and e6500. Enable branch targets alignment for e5500 and
6592         e6500. Initialize rs6000_cost for e5500 and e6500.
6593         (rs6000_adjust_cost): Add extra scheduling cycles between compare
6594         and brnach for e5500 and e6500.
6595         (rs6000_issue_rate): Set issue rate for e5500 and e6500.
6596         * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
6597         e6500.
6598         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
6599         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
6600         ppce6500.
6601         Include e5500.md and e6500.md.
6602         * config/rs6000/rs6000-opt.h (processor_type): Add
6603         PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
6604         * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
6605         (powerpc*-*-*): Add new cores e5500, e6500.
6606         * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
6608 2012-06-05  Richard Guenther  <rguenther@suse.de>
6610         * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.
6612 2012-06-05  H.J. Lu  <hongjiu.lu@intel.com>
6614         PR target/53575
6615         * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
6616         is used for x86_64-*-*.
6618 2012-06-05  Richard Guenther  <rguenther@suse.de>
6620         PR tree-optimization/30442
6621         * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
6622         vectorization stop analysis at the first stmt we cannot compute
6623         a data-reference for instead of giving up completely.
6625 2012-06-05  Richard Guenther  <rguenther@suse.de>
6627         * tree-loop-distribution.c (struct partition_s): Add has_writes member.
6628         (partition_alloc): Initialize it.
6629         (partition_has_writes): New function.
6630         (rdg_flag_uses): Adjust.
6631         (rdg_flag_vertex): Likewise.
6632         (rdg_flag_vertex_and_dependent): Likewise.
6633         (rdg_flag_loop_exits): Likewise.
6634         (build_rdg_partition_for_component): Likewise.
6635         (rdg_build_partitions): Likewise.
6637 2012-06-05  Richard Guenther  <rguenther@suse.de>
6639         PR tree-optimization/53081
6640         * tree-loop-distribution.c (generate_memset_builtin): Handle all
6641         kinds of byte-sized stores.
6642         (classify_partition): Likewise.
6643         (tree_loop_distribution): Adjust seed statements used for
6644         !flag_tree_loop_distribution.
6646 2012-06-05  Alan Modra  <amodra@gmail.com>
6648         * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
6649         (rs6000_emit_prologue): Ensure register used for inline saves
6650         of vector regs is not the static chain register.  Revise comment.
6652 2012-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
6654         * doc/md.texi (Standard Pattern Names For Generation): Document
6655         sincos pattern.
6657 2012-06-04  H.J. Lu  <hongjiu.lu@intel.com>
6659         PR bootstrap/53555
6660         * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
6662 2012-06-04  Jason Merrill  <jason@redhat.com>
6664         * dwarf2out.c (is_unit_die): New.
6665         (copy_declaration_context, copy_ancestor_tree): Use it.
6666         (copy_decls_walk): Likewise.
6668 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
6670         PR c++/53524
6671         * doc/invoke.texi (Wenum-compare): Update documentation.
6673 2012-06-04  Dodji Seketeli  <dodji@redhat.com>
6675         PR preprocessor/53463
6676         * parser.c (cp_parser_assignment_expression): Use the location
6677         for the '=' as the default location for the expression.
6679 2012-06-04  Edmar Wienskoski  <edmar@freescale.com>
6681         PR target/53559
6682         * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
6683         operands.
6684         (altivec_stvlxl): Ditto.
6685         (altivec_stvrx): Ditto.
6686         (altivec_stvrxl): Ditto.
6688 2012-06-04  Vladimir Makarov  <vmakarov@redhat.com>
6690         * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
6691         (ira_uniform_class_p): New macro.
6693         * ira.c (setup_uniform_class_p): New function.
6694         (setup_allocno_and_important_classes): Call the function.
6695         (print_unform_and_important_classes): New function.
6696         (print_classes): Rename to print_translated_classes.
6697         (ira_debug_allocno_classes): Add call of
6698         print_unform_and_important_classes.
6700         * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
6701         classes instead of pressure classes.
6703 2012-06-04  Aldy Hernandez  <aldyh@redhat.com>
6705         PR middle-end/47530
6706         * trans-mem.c (expand_block_edges): Do not skip the first
6707         statement when resetting the BB.
6709 2012-06-04  Richard Guenther  <rguenther@suse.de>
6711         * tree-data-ref.c (stores_from_loop): Remove.
6712         (stmt_with_adjacent_zero_store_dr_p): Likewise.
6713         (stores_zero_from_loop): Likewise.
6714         * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
6715         stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
6716         (adjacent_store_dr_p): New function.
6717         * tree-loop-distribution.c (generate_memset_builtin): Pass
6718         the RDG, use the already available data-reference.
6719         (generate_code_for_partition): Pass down RDG.
6720         (classify_partition): Inline parts of the former
6721         stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
6722         (ldist_gen): Remember if there was any detected builtin and
6723         do less work if not and flag_tree_loop_distribution is not set.
6724         (tree_loop_distribution): Inline and fuse stores_from_loop
6725         and stores_zero_from_loop here.
6727 2012-06-04  Richard Guenther  <rguenther@suse.de>
6729         PR middle-end/53471
6730         * dwarf2out.c (dwarf2out_finish): If generating LTO do not
6731         create new assembler names.
6733 2012-06-04  Richard Guenther  <rguenther@suse.de>
6735         * tree-data-ref.c (struct rdg_vertex_info): Remove.
6736         (rdg_vertex_for_stmt): Simplify using gimple_uid.
6737         (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
6738         hashtable.  Record stmt data-references.
6739         (hash_stmt_vertex_info): Remove.
6740         (eq_stmt_vertex_info): Likewise.
6741         (hash_stmt_vertex_del): Likewise.
6742         (build_empty_rdg): Simplify.
6743         (build_rdg): Adjust.
6744         (free_rdg): Likewise.
6745         (ref_base_address): Remove.
6746         (have_similar_memory_accesses): Likewise.
6747         * tree-data-ref.h (create_rdg_vertices): Remove.
6748         (struct rdg_vertex): Add datarefs member.
6749         (RDGV_DATAREFS): New define.
6750         (RDG_DATAREFS): Likewise.
6751         (have_similar_memory_accesses): Remove.
6752         (rdg_has_similar_memory_accesses): Likewise.
6753         * tree-loop-distribution.c (ref_base_address): Re-implement here.
6754         (similar_memory_accesses): Re-implement using existing data-references.
6755         (tree_loop_distribution): Initialize stmt uids for the stmt to
6756         RDG index mapping.
6757         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
6758         access stmt vinfo for stmts in loop.
6760 2012-06-04  Andreas Schwab  <schwab@linux-m68k.org>
6762         PR target/53461
6763         * config/m68k/m68k.md ("tablejump"): Fix check for
6764         CASE_VECTOR_PC_RELATIVE.
6766 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
6768         * output.h (merge_weak, assemble_alias,
6769         initializer_constant_valid_p,
6770         initializer_constant_valid_for_bitfield_p): Move protos from here...
6771         * tree.h: ... to here.
6772         * cgraphclones.c: Do not include output.h.
6773         * gimplify.c: Likewise.
6774         * reload.c: Likewise.
6775         * recog.c: Likewise.
6776         * tree-ssa-loop-ivopts.c: Likewise.
6777         * tree-switch-conversion.c: Likewise.
6778         * c-parser.c: Likewise.
6779         * c-typeck.c: Likewise.
6780         * Makefile.in: Fix dependencies.
6782 2012-06-04  Georg-Johann Lay  <avr@gjlay.de>
6784         PR target/46261
6785         * config/avr/avr-stdint.h: New file.
6786         * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
6787         newlib-stdint.h
6789 2012-06-04  Jakub Jelinek  <jakub@redhat.com>
6791         PR tree-optimization/53550
6792         * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
6793         is POINTER_TYPE_P, use sizetype as step type instead of type.
6795 2012-06-04  Richard Guenther  <rguenther@suse.de>
6797         * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
6798         (ref_base_address_1): Likewise.
6799         (remove_similar_memory_refs): Likewise.
6800         * tree-data-ref.h (remove_similar_memory_refs): Remove.
6801         * tree-loop-distribution.c (classify_partition): Do not classify
6802         as builtin if -ftree-loop-distribute-patterns is not enabled.
6803         (fuse_partitions_with_similar_memory_accesses): Inline ...
6804         (ldist_gen): ... here.  Fuse all non-builtin partitions if
6805         -ftree-loop-distribution is not enabled.  Properly return
6806         the number of created partitions.  Do not update SSA form here but ...
6807         (tree_loop_distribution): ... once here for the whole function.
6808         Only walk innermost loops, constrain loops we consider here
6809         further.  Do not call remove_similar_memory_refs.
6810         (distribute_loop): Do not check number of loop nodes here.
6812 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
6814         * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
6816 2012-06-03  Martin Jambor  <mjambor@suse.cz>
6818         * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
6819         (ipa_get_jf_known_type_base_type): Likewise.
6820         (ipa_get_jf_known_type_component_type): Likewise.
6821         (ipa_get_jf_constant): Likewise.
6822         (ipa_get_jf_pass_through_formal_id): Likewise.
6823         (ipa_get_jf_pass_through_operation): Likewise.
6824         (ipa_get_jf_ancestor_offset): Likewise.
6825         (ipa_get_jf_ancestor_type): Likewise.
6826         (ipa_get_jf_ancestor_formal_id): Likewise.
6827         (ipa_get_jf_member_ptr_pfn): Likewise.
6828         * ipa-prop.c (ipa_set_jf_known_type): New function.
6829         (ipa_set_jf_constant): Likewise.
6830         (ipa_set_jf_simple_pass_through): Likewise.
6831         (ipa_set_jf_arith_pass_through): Likewise.
6832         (ipa_set_ancestor_jf): Likewise.
6833         (fill_member_ptr_cst_jump_function): Moved up and renamed to
6834         ipa_set_jf_member_ptr_cst.
6835         (detect_type_change_1): Use the new jump function creation functions.
6836         (compute_complex_assign_jump_func): Likewise.
6837         (compute_complex_ancestor_jump_func): Likewise.
6838         (compute_known_type_jump_func): Likewise.
6839         (compute_scalar_jump_functions): Likewise.
6840         (compute_pass_through_member_ptrs): Likewise.
6841         (determine_cst_member_ptr): Likewise.
6842         (combine_known_type_and_ancestor_jfs): Likewise.
6843         (try_make_edge_direct_simple_call): Likewise.
6844         (try_make_edge_direct_virtual_call): Likewise.
6845         (update_indirect_edges_after_inlining): Likewise.
6846         * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
6847         access functions.  Incorporat NOP_EXPR and BINFO handling from its
6848         callers.
6849         (ipa_get_jf_ancestor_result): Likewise.  Incorporate handling BINFOs
6850         which was in its callers.
6851         (ipa_value_from_jfunc): Use jump function access functions.  Some
6852         functionality moved to functions above.
6853         (propagate_vals_accross_ancestor): Likewise.
6854         (propagate_vals_accross_pass_through): Use jump function access
6855         functions.
6856         (propagate_accross_jump_function): Likewise.
6857         * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
6858         access functions.
6859         (inline_merge_summary): Likewise.
6861 2012-06-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6863         * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
6864         * config/pa/pa.c (pa_attr_length_millicode_call): Use
6865         MAX_PCREL17F_OFFSET instead of fixed offset.
6866         (pa_attr_length_call): Likewise.
6867         (pa_attr_length_indirect_call): Likewise.
6869 2012-06-03  Oleg Endo  <olegendo@gcc.gnu.org>
6871         PR target/53512
6872         * config/sh/sh.opt (mfsca, mfsrra): New options.
6873         * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
6874         condition.
6875         (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
6876         (sinssf2, cossf2): Fold expanders to ...
6877         (sincossf3): ... this new expander.  Use TARGET_FPU_ANY and
6878         TARGET_FSCA condition.
6879         * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
6880         TARGET_FSCA.
6881         * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
6882         -mno-fsca, -mfsrra, -mno-fsrra.
6884 2012-06-03  Matt Turner  <mattst88@gmail.com>
6886         * config/mips/4600.md (r4700_imul_si): New.
6887         (r4700_imul_di): New.
6888         (r4700_fmul_single): New.
6889         (r4700_fmul_double): New.
6890         * config/mips/mips-cpus.def: Add r4700.
6891         * config/mips/mips.c: Likewise.
6892         * config/mips/mips.md: Likewise.
6893         * config/mips/mips-tables.opt: Regenerate.
6895 2012-06-02  Steven Bosscher  <steven@gcc.gnu.org>
6897         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
6898         new function sparc_initial_elimination_offset.
6899         * config/sparc/sparc.c (sparc_initial_elimination_offset): New
6900         function.
6901         * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
6902         Prototype it.
6904 2012-06-02  Kenneth Zadeck <zadeck@naturalbridge.com>
6906         * expmed.c (expand_mult, choose_multiplier): Change
6907         "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
6908         * expr.c (convert_modes): Likewise.
6909         * explow.c (plus_constant): Likewise.
6910         * fixed-value.c (fixed_saturate1, fixed_saturate2)
6911         (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
6912         (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
6913         (do_fixed_divide, do_fixed_divide, do_fixed_divide)
6914         (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
6915         (do_fixed_shift, fixed_convert, fixed_convert)
6916         (fixed_convert_from_int, fixed_convert_from_int)
6917         (fixed_convert_from_real): Likewise.
6918         * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
6919         (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
6920         * varasm.c (output_constructor_bitfield): Likewise.
6921         * tree-vrp.c (register_edge_assert_for_2): Likewise.
6922         * double-int.c (rshift_double, lshift_double): Likewise.
6923         * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
6924         Likewise.
6925         * simplify-rtx.c (mode_signbit_p)
6926         (simplify_const_unary_operation, simplify_binary_operation_1)
6927         (simplify_immed_subreg): Likewise.
6928         * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
6929         * tree-vect-generic.c (build_replicated_const): Likewise.
6930         * dbxout.c (stabstr_O): Likewise.
6931         * emit-rtl.c (immed_double_int_const, immed_double_const)
6932         (gen_lowpart_common, init_emit_once): Likewise.
6933         * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
6934         (widest_int_cst_value, upper_bound_in_type): Likewise.
6935         * stor-layout.c (initialize_sizetypes, fixup_signed_type)
6936         (fixup_unsigned_type): Likewise.
6937         * real.c (real_to_integer2, real_from_integer): Likewise.
6938         * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
6939         (clz_loc_descriptor, mem_loc_descriptor): Likewise.
6941 2012-06-01  Eric Botcazou  <ebotcazou@adacore.com>
6943         PR middle-end/53501
6944         * fold-const.c (fold_binary_loc): Refine previous change.
6946 2012-06-01  Olivier Hainque  <hainque@adacore.com>
6948         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
6949         the "do {" part of the do-while(0) loop.
6951 2012-06-01  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
6953         * config/i386/i386.c (x86_sched_reorder): New function.
6954         Added new function x86_sched_reorder.
6956 2012-06-01  Richard Guenther  <rguenther@suse.de>
6958         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
6959         Handle PHIs.
6960         (classify_partition): Likewise.
6962 2012-06-01  Richard Guenther  <rguenther@suse.de>
6964         * tree-loop-distribution.c (enum partition_kind): New enum.
6965         (struct partition_s): Add kind and main_stmt members.
6966         (partition_alloc): Initialize kind to PKIND_NORMAL.
6967         (partition_builtin_p): New function.
6968         (copy_loop_before): Remove failure path and assert instead.
6969         (generate_loops_for_partition): Likewise.
6970         (generate_memset_zero): Fold into ...
6971         (generate_memset_builtin): ... this.
6972         (classify_partition): New function with code from
6973         can_generate_builtin and generate_builtin.
6974         (generate_builtin): Remove.
6975         (can_generate_builtin): Likewise.
6976         (fuse_partitions_with_similar_memory_accesses): Call
6977         partition_builtin_p instead of can_generate_builtin.
6978         (rdg_build_partitions): Do not call
6979         fuse_partitions_with_similar_memory_accesses here...
6980         (ldist_gen): ... but here after classifying all partitions.
6981         Remove failure path of generate_code_for_partition.
6982         (generate_code_for_partition): Generate code according
6983         to partition classification.
6985 2012-06-01  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6986             Jonathan Wakely  <jwakely.gcc@gmail.com>
6988         PR c++/50134
6989         * doc/invoke.texi (Warning Options): Explain purpose and differences
6990         between -Wmissing-prototypes and -Wmissing-declarations.
6992 2012-06-01  Christian Bruel  <christian.bruel@st.com>
6994         * gcc.c (save_switch): Add user_p parameter.
6995         (read_specs): Likewise.
6996         (set_specs): Likewise.
6997         (validate_switches): Likewise.
6998         (validate_switches_from_spec): Likewise.
6999         (validate_all_switches): Pass on user_p parameter.
7000         (struct spec_list): Add user_p field.
7001         (struct switchstr): Add known field.
7002         (save_switch): Add known parameter.
7003         (INIT_STATIC_SPEC): Initialize user_p;
7004         (driver_unknown_option_callbac): call save_switch if
7005         OPT_SPECIAL_unknown.
7006         (driver_handle_option): Propagate OPT_specs.
7007         (do_spec_1): Set validated only if known.
7008         (check_live_switch): Likewise.
7009         (validate_switches): Set validated if known or user_spec.
7011 2012-06-01  Hans-Peter Nilsson  <hp@axis.com>
7013         Add CRIS atomic patterns for 1, 2, and 4 bytes.
7014         * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
7015         * config/cris/cris-protos.h: Declare it.
7016         * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
7017         (TARGET_DEFAULT): Add alignment by 32.
7018         [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
7019         case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
7020         TARGET_CPU_DEFAULT == 32.
7021         (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
7022         * config/cris/cris.md: Include sync.md.  Avoid allocating specific
7023         numbers by replacing the define_constants for all UNSPECs with the
7024         equivalent define_c_enum construct.
7025         * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
7026         * config/cris/sync.md: New file.
7028 2012-05-31  Matt Turner  <mattst88@gmail.com>
7030         * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
7031         (r4600_imul_di): New.
7032         (r4600_idiv_si): Rename from r4600_idiv.
7033         (r4600_idiv_di): New.
7035 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
7037         * output.h (__gcc_host_wide_int__): Move to hwint.h.
7038         (decl_default_tls_model): Move to tree.h
7039         (dump_file): Move to system.h.
7040         (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
7041         dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
7042         dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
7043         dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
7044         dbxout_stab_value_zero, dbxout_stab_value_label_diff,
7045         dbxout_stab_value_internal_label,
7046         dbxout_stab_value_internal_label_diff): Move from here ...
7047         * dbxout.h: ... to here.
7048         * system.h (dump_file): Moved here from output.h.
7049         * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
7050         * tree.h (decl_default_tls_model): Moved here from output.h.
7051         * varasm.c (default_stabs_asm_out_destructor,
7052         default_stabs_asm_out_constructor): Move from here ...
7053         * dbxout.c: ... to here.
7055         * gcov-dump.c (dump_file): Rename to dump_gcov_file.  Update callers.
7057         * collect2.h (dump_file): Rename to dump_ld_file.
7058         * collect2.c: Likewise.
7059         * tlink.c: Likewise.
7061         * alias.c: Do not include output.h.
7062         * auto-inc-dec.c: Likewise.
7063         * bt-load.c: Likewise.
7064         * caller-save.c: Likewise.
7065         * cfg.c: Likewise.
7066         * cfgbuild.c: Likewise.
7067         * cfgcleanup.c: Likewise.
7068         * cfglayout.c: Likewise.
7069         * cfgloop.c: Likewise.
7070         * cfgloopanal.c: Likewise.
7071         * cfgloopmanip.c: Likewise.
7072         * cfgrtl.c: Likewise.
7073         * cgraph.c: Likewise.
7074         * cgraphclones.c: Likewise.
7075         * combine-stack-adj.c: Likewise.
7076         * combine.c: Likewise.
7077         * cprop.c: Likewise.
7078         * cse.c: Likewise.
7079         * cselib.c: Likewise.
7080         * dbgcnt.c: Likewise.
7081         * df-problems.c: Likewise.
7082         * df-scan.c: Likewise.
7083         * dojump.c: Likewise.
7084         * fwprop.c: Likewise.
7085         * gcse.c: Likewise.
7086         * graph.c: Likewise.
7087         * haifa-sched.c: Likewise.
7088         * hw-doloop.c: Likewise.
7089         * ipa-inline-transform.c: Likewise.
7090         * ipa-pure-const.c: Likewise.
7091         * ipa-reference.c: Likewise.
7092         * ipa-utils.c: Likewise.
7093         * ira-build.c: Likewise.
7094         * ira-emit.c: Likewise.
7095         * lcm.c: Likewise.
7096         * loop-doloop.c: Likewise.
7097         * loop-invariant.c: Likewise.
7098         * loop-iv.c: Likewise.
7099         * loop-unroll.c: Likewise.
7100         * loop-unswitch.c: Likewise.
7101         * lto-cgraph.c: Likewise.
7102         * lto-section-in.c: Likewise.
7103         * lto-streamer-in.c: Likewise.
7104         * mcf.c: Likewise.
7105         * mode-switching.c: Likewise.
7106         * postreload-gcse.c: Likewise.
7107         * postreload.c: Likewise.
7108         * predict.c: Likewise.
7109         * profile.c: Likewise.
7110         * ree.c: Likewise.
7111         * reg-stack.c: Likewise.
7112         * regcprop.c: Likewise.
7113         * regmove.c: Likewise.
7114         * regstat.c: Likewise.
7115         * reload1.c: Likewise.
7116         * sched-ebb.c: Likewise.
7117         * sel-sched-dump.c: Likewise.
7118         * simplify-rtx.c: Likewise.
7119         * stor-layout.c: Likewise.
7120         * store-motion.c: Likewise.
7121         * tracer.c: Likewise.
7122         * tree-affine.c: Likewise.
7123         * tree-cfg.c: Likewise.
7124         * tree-cfgcleanup.c: Likewise.
7125         * tree-dfa.c: Likewise.
7126         * tree-into-ssa.c: Likewise.
7127         * tree-nomudflap.c: Likewise.
7128         * tree-optimize.c: Likewise.
7129         * tree-pretty-print.c: Likewise.
7130         * tree-profile.c: Likewise.
7131         * tree-ssa-address.c: Likewise.
7132         * tree-ssa-ccp.c: Likewise.
7133         * tree-ssa-copy.c: Likewise.
7134         * tree-ssa-dom.c: Likewise.
7135         * tree-ssa-loop-ch.c: Likewise.
7136         * tree-ssa-loop-im.c: Likewise.
7137         * tree-ssa-loop-manip.c: Likewise.
7138         * tree-ssa-loop-niter.c: Likewise.
7139         * tree-ssa-loop-prefetch.c: Likewise.
7140         * tree-ssa-loop-unswitch.c: Likewise.
7141         * tree-ssa-loop.c: Likewise.
7142         * tree-ssa-propagate.c: Likewise.
7143         * tree-ssa-structalias.c: Likewise.
7144         * tree-ssa-tail-merge.c: Likewise.
7145         * tree-ssa-threadedge.c: Likewise.
7146         * tree-ssa-threadupdate.c: Likewise.
7147         * tree-ssa-uncprop.c: Likewise.
7148         * tree-ssa-uninit.c: Likewise.
7149         * tree-ssa.c: Likewise.
7150         * value-prof.c: Likewise.
7151         * var-tracking.c: Likewise.
7152         * web.c: Likewise.
7154         * config/m32r/m32r.c: Include dbxout.h.
7155         * config/pa/pa.c: Likewise.
7156         * config/rs6000/rs6000.c: Likewise.
7158         * Makefile.in: Fix dependencies.
7159         * config/rs6000/t-rs5000: Likewise.
7161 2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
7163         * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
7164         * gimple.h (block_in_transaction): Check for flag_tm.
7166 2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
7168         PR tree-optimization/52558
7169         * cfg.c (alloc_aux_for_edge): Fix comment.
7170         (alloc_aux_for_edge): Remove static.
7171         * basic-block.h (alloc_aux_for_edge): Protoize.
7172         * tree-ssa-loop-im.c (execute_sm_if_changed): New.
7173         (execute_sm_if_changed_flag): New.
7174         (execute_sm_if_changed_flag_set): New.
7175         (execute_sm): Do not generate data races unless requested.
7176         (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
7177         (tree_ssa_lim_finalize): Call free_aux_for_edges.
7178         * gimple.h (block_in_transaction): New.
7179         (gimple_in_transaction): Use block_in_transaction.
7181 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
7183         PR target/51345
7184         * config/avr/avr.opt (-msp8): Document it.
7185         * doc/invoke.texi (AVR Options): Ditto.  And document related
7186         built-in macros.
7188 2012-05-31  Diego Novillo  <dnovillo@google.com>
7190         * configure.ac (CXX_FOR_BUILD): Define and substitute.
7191         (BUILD_CXXFLAGS): Define and substitute.
7192         * Makefile.in (BUILD_CXXFLAGS): Define.
7193         (CXX_FOR_BUILD): Define.
7194         (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
7195         (LINKER_FOR_BUILD): Likewise.
7196         (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
7197         (BUILD_LINKERFLAGS): Likewise.
7198         * configure: Regenerate.
7200 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
7202         * Makefile.in: Fix many dependencies.
7203         * tree-profile.c: Don't include regs.h.
7204         * tree-vectorizer.c: Don't include cfglayout.h.
7205         * tree-vect-stmts.c: Likewise.
7206         * tree-vect-slp.c: Likewise.
7207         * tree-vect-loop.c: Likewise.
7208         * reg-stack.c: Likewise.
7209         * tree-ssa-loop-manip.c: Likewise.
7210         * toplev.c: Likewise.
7211         * varasm.c: Don't include cfglayout.h, basic-block.h,
7212         and tree-iterator.h.
7213         * tree-cfgcleanup.c: Don't include cfglayout.h.
7214         * passes.c: Don't include cfglayout.h, dwarf2asm.h,
7215         dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
7216         * cgraphclones.c: Don't include plugin.h.
7218 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
7220         * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
7221         (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
7222         * doc/avr-mmcu.texi (svn:eol-style): Set to native.
7224 2012-05-31  Richard Guenther  <rguenther@suse.de>
7226         * tree-loop-distribution.c (struct partition_s): New struct,
7227         typedef and vector type.
7228         (partition_alloc, partition_free): New functions.
7229         (generate_loops_for_partition, generate_builtin,
7230         generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
7231         rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
7232         build_rdg_partition_for_component, can_generate_builtin,
7233         similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
7234         rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
7235         number_of_rw_in_partition, partition_contains_all_rw,
7236         ldist_gen): Use partition_t instead of bitmap.
7238 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
7240         * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
7241         * doc/avr-mmcu.texi: Regenerate.
7243 2012-05-31  Richard Guenther  <rguenther@suse.de>
7245         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
7246         Use FOR_EACH_SSA_DEF_OPERAND.
7247         (generate_builtin): Adjust.
7248         (stmt_generated_in_another_partition): Remove.
7249         (add_scalar_computations_to_partition): Likewise.
7250         (rdg_build_partitions): Do not call
7251         add_scalar_computations_to_partition.
7253 2012-05-31  Eric Botcazou  <ebotcazou@adacore.com>
7255         * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
7256         double ints throughout.
7257         * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
7258         Check that the position of the field is representable as an integer.
7260 2012-05-31  Richard Guenther  <rguenther@suse.de>
7262         * tree-data-ref.c (dr_analyze_innermost): Properly convert
7263         the MEM_REF offset to sizetype.
7265 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
7267         * doc/invoke.texi (AVR Options): Fix typos.
7269 2012-05-31  Hans-Peter Nilsson  <hp@axis.com>
7271         * config/cris/cris.h (CC1_SPEC): Pass through all -march=
7272         and -mcpu= options.
7273         (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
7274         non-v32 into --march=v0_v10.
7276 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
7278         * ira-int.h (target_ira_int): Rename x_move_cost to
7279         x_ira_register_move_cost, x_may_move_in_cost to
7280         x_ira_may_move_in_cost and x_may_move_out_cost to
7281         x_ira_may_move_out_cost.  Delete the old fields with
7282         those names and also x_ira_max_register_move_cost,
7283         x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
7284         (move_cost, may_move_in_cost, may_move_out_cost)
7285         (ira_max_register_move_cost, ira_max_may_move_in_cost)
7286         (ira_max_may_move_out_cost): Delete.
7287         * ira.c (init_move_cost): Rename to...
7288         (ira_init_register_move_cost): ...this, deleting the old
7289         function with that name.  Apply above variable renamings.
7290         Retain asserts for null fields.
7291         (ira_init_once): Don't initialize register move costs here.
7292         (free_register_move_costs): Apply above variable renamings.
7293         Remove code for deleted fields.
7295 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
7297         * ira.c (init_move_cost): Adjust choice of subclasses to match
7298         the current ira_init_register_move_cost choice.  Use
7299         ira_class_subset_p instead of reg_class_subset_p.
7300         (ira_init_register_move_cost): Assert that move_cost,
7301         may_move_in_cost and may_move_out_cost already hold the desired
7302         values for their ira_* equivalents.  For the latter two,
7303         ignore classes that can't store a register of the given mode.
7305 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
7307         * ira.c (setup_allocno_and_important_classes): Use
7308         ira_class_hard_regs_num to check whether a class has any
7309         allocatable registers.
7310         (ira_init_register_move_cost): Likewise.
7312 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
7314         * ira.c (init_move_cost): Adjust local variable names to match
7315         file conventions.  Use ira_assert instead of gcc_assert.
7317 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
7319         * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
7320         Move these definitions and associated target_globals fields to...
7321         * ira-int.h: ...here.
7322         * rtl.h (init_move_cost): Delete.
7323         * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
7324         * ira.c: ...here, making the latter static.
7326 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
7328         * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
7329         and ira_register_move_cost instead of init_move_cost and move_cost.
7331 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
7333         * ira.h (target_ira): Delete x_ira_available_class_regs.
7334         (ira_available_class_regs): Delete.
7335         * ira.c (setup_available_class_regs): Delete.
7336         (setup_alloc_classes): Don't call it.
7337         (setup_pressure_classes): Use ira_class_hard_regs_num instead of
7338         ira_available_class_regs.
7339         * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
7340         (model_spill_cost): Likewise.
7341         * ira-build.c (low_pressure_loop_node_p): Likewise.
7342         * ira-color.c (color_pass): Likewise.
7343         * ira-emit.c (change_loop): Likewise.
7344         * ira-lives.c (inc_register_pressure, dec_register_pressure)
7345         (single_reg_class, ira_implicitly_set_insn_hard_regs)
7346         (process_bb_node_lives): Likewise.
7347         * loop-invariant.c (gain_for_invariant): Likewise.
7349 2012-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7351         PR target/52999
7352         * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
7353         (pa_section_type_flags): New.
7354         (pa_legitimate_constant_p): Revert previous change.
7356 2012-05-30  Steven Bosscher  <steven@gcc.gnu.org>
7358         * ira.c (allocate_initial_values): Make static.
7360 2012-05-30  Uros Bizjak  <ubizjak@gmail.com>
7362         * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
7363         Generate tls_initial_exec_64_sun only when !TARGET_X32.
7365 2012-05-30  Richard Guenther  <rguenther@suse.de>
7367         PR middle-end/53501
7368         * fold-const.c (fold_binary_loc): Make sure to call
7369         fold_plusminus_mult_expr with the original sign of operands.
7371 2012-05-30  Steven Bosscher  <steven@gcc.gnu.org>
7373         * Makefile.in: Fix many dependencies.
7374         (DWARF2_H): Depend on dwarf2.def.
7375         (RTL_ERROR_H): Depend on rtl-error.h.
7376         (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New.  Replace
7377         all gimple-pretty-print.h and tree-pretty-print.h references.
7379 2012-05-30  Marc Glisse  <marc.glisse@inria.fr>
7381         * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
7382         concatenations.
7384 2012-05-30  Richard Guenther  <rguenther@suse.de>
7386         PR middle-end/53522
7387         * tree-emutls.c (gen_emutls_addr): Do not add globals to
7388         referenced-vars.
7390 2012-05-30  Eric Botcazou  <ebotcazou@adacore.com>
7392         * explow.c (probe_stack_range): Restore simple control flow and stop
7393         again when the probe cannot be generated if HAVE_check_stack.
7395 2012-05-30  Jakub Jelinek  <jakub@redhat.com>
7397         PR rtl-optimization/53519
7398         * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
7399         instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
7401 2012-05-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7403         * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
7405 2012-05-29  Jack Howarth  <howarth@bromo.med.uc.edu>
7407         PR debug/53453
7408         * doc/tm.texi: Update.
7409         * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
7410         * target.def (force_at_comp_dir): New hook.
7411         * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
7412         * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
7414 2012-05-29  Jack Howarth  <howarth@bromo.med.uc.edu>
7416         * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
7417         Darwin >= 10.
7418         (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
7419         (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
7421 2012-05-29  Oleg Endo  <olegendo@gcc.gnu.org>
7423         PR target/51340
7424         * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
7425         flag_unsafe_math_optimizations is set.
7426         * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
7427         Update description of -mfused-madd.
7429 2012-05-29  Oleg Endo  <olegendo@gcc.gnu.org>
7431         PR target/52941
7432         * config/sh/predicates.md (atomic_arith_operand,
7433         atomic_logical_operand): New predicates.
7434         * config/sh/sh.c (sh_option_override): Check atomic options.
7435         * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
7436         UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
7437         (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
7438         UNSUPPORTED_HARD_ATOMIC_CPU.
7439         * config/sh/sync.md: Update description comments.
7440         (I12): New mode iterator.
7441         (fetchop_predicate, fetchop_constraint): New code attributes.
7442         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
7443         atomic_exchangesi_hard, atomic_exchange<mode>_hard,
7444         atomic_fetch_<fetchop_name>si_hard,
7445         atomic_fetch_<fetchop_name><mode>_hard,
7446         atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
7447         atomic_<fetchop_name>_fetchsi_hard,
7448         atomic_<fetchop_name>_fetch<mode>_hard,
7449         atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
7450         atomic_test_and_set_hard): New insns.
7451         (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
7452         atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
7453         atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
7454         atomic_test_and_set_soft): Use same formatting for the first line of
7455         the asm block as in new insns above.
7456         (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
7457         atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
7458         atomic_test_and_set): Integrate new *_hard insns into expanders.
7459         * config/sh/sh.opt (mhard-atomic): New option.
7460         * doc/invoke.texi (SH Options): Document it.
7462 2012-05-29  Meador Inge  <meadori@codesourcery.com>
7464         * c-decl.c (c_push_function_context): Always create a new language
7465         function.
7466         (c_pop_function_context): Clear the language function created in
7467         c_push_function_context.
7469 2012-05-29  Matt Turner  <mattst88@gmail.com>
7471         * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
7472         (define_bypass "ev6_fcmov"): New.
7474 2012-05-29  Steven Bosscher  <steven@gcc.gnu.org>
7476         * integrate.c: Remove.
7477         * integrate.h: Remove.
7478         * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
7479         * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
7480         * config/rs6000/t-rs6000: Likewise
7481         * config/spu/t-spu-elf: Likewise.
7482         * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
7483         get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
7484         from integrate.h to here.
7485         (initial_value_entry): New prototype.
7486         * reload.h (allocate_initial_values): Remove prototype.
7487         * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
7488         * cse.c (fixed_base_plus_p): Don't handle virtual registers for
7489         integrate.c.
7490         * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
7491         set_decl_abstract_flags, set_block_abstract_flags): Move from
7492         integrate.c to here, the only user.
7493         * expmed.c (extract_fixed_bit_field): Remove outdated comment
7494         about integrate.c.
7495         * function.c: Don't include integrate.h.
7496         (struct initial_value_pair, struct initial_value_struct,
7497         get_hard_reg_initial_val, has_hard_reg_initial_val,
7498         get_hard_reg_initial_reg, emit_initial_value_sets): Move from
7499         integrate.c to here.
7500         (initial_value_entry): New function.
7501         * genemit.c (main): Don't print integrate.h include line.
7502         * ira.c: Don't include integrate.h.
7503         (allocate_initial_values): Move from integrate.c to here.
7504         (ira): Update allocate_initial_values call.
7505         * tree-inline.c: Don't include integrate.h.
7506         (function_attribute_inlinable_p): Moved from integrate.c to here.
7507         * cfgexpand.c: Don't include integrate.h.
7508         * except.c: Likewise.
7509         * langhooks.c: Likewise.
7510         * passes.c: Likewise.
7511         * toplev.c: Likewise.
7512         * config/frv/frv.c: Likewise.
7513         * config/pa/pa.c: Likewise.
7514         * config/spu/spu.c: Likewise.
7515         * config/epiphany/epiphany.c: Likewise.
7516         * config/mep/mep.c: Likewise.
7517         * config/score/score.c: Likewise.
7518         * config/picochip/picochip.c: Likewise.
7519         * config/sh/sh.c: Likewise.
7520         * config/alpha/alpha.c: Likewise.
7521         * config/microblaze/microblaze.c: Likewise.
7522         * config/mips/mips.c: Likewise.
7523         * config/v850/v850.c: Likewise.
7524         * config/mmix/mmix.c: Likewise.
7525         * config/bfin/bfin.c: Likewise.
7526         * config/arm/arm.c: Likewise.
7527         * config/s390/s390.c: Likewise.
7528         * config/m32r/m32r.c: Likewise.
7529         * config/rs6000/rs6000.c: Likewise.
7530         * config/c6x/c6x.c: Include function.h instead of integrate.h.
7531         * config/tilegx/tilegx.c: Likewise.
7532         * config/tilepro/tilepro.c: Likewise.
7534 2012-05-29  Georg-Johann Lay  <avr@gjlay.de>
7536         * config/avr/t-avr (s-avr-mmcu-texi): Call
7537         gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
7539 2012-05-29  Michael Matz  <matz@suse.de>
7541         * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
7542         assign_temp): Remove 'keep' argument.
7543         (mark_temp_addr_taken): Remove prototype.
7544         * tree.h (expand_decl): Remove prototype.
7545         * function.c (struct temp_slot): Remove addr_taken and keep member.
7546         (assign_stack_temp_for_type) Don't initialize above, remove
7547         keep argument.
7548         (assign_stack_temp, assign_temp): Remove keep argument.
7549         (mark_temp_addr_taken): Remove.
7550         (preserve_temp_slots): Remove handling of addr_taken and keep members.
7551         (free_temp_slots): Ditto.
7552         * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
7553         dead code.
7554         * stmt.c (expand_asm_operands): Remove dead code.
7555         (expand_decl): Remove.
7556         * c-decl.c (finish_struct): Don't call expand_decl.
7557         * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
7558         and assign_stack_temp.
7559         * calls.c (save_fixed_argument_area, initialize_argument_information,
7560         expand_call, emit_library_call_value_1, store_one_arg): Ditto.
7561         * expmed.c (extract_bit_field_1): Ditto.
7562         * expr.c (emit_group_load_1, emit_group_store,
7563         copy_blkmode_from_reg, emit_push_insn, expand_assignment,
7564         store_field, expand_constructor, expand_cond_expr_using_cmove,
7565         expand_expr_real_2, expand_expr_real_1): Ditto.
7566         * stmt.c (expand_asm_operands, expand_return): Ditto.
7568         * function.c (pop_temp_slots): Call free_temp_slots.
7569         * calls.c (store_one_arg): Don't call preserve_temp_slots or
7570         free_temp_slots.
7571         * expr.c (expand_assignment): Don't call free_temp_slots.
7573         * config/arm/arm.c (neon_expand_vector_init): Ditto.
7574         * config/i386/i386.c (ix86_expand_vector_set): Ditto.
7575         (ix86_expand_vector_extract): Ditto.
7576         * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
7577         ia64_expand_movxf_movrf): Ditto.
7578         * config/mips/mips.c (mips_expand_vi_general): Ditto.
7579         * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
7580         extendsfdf2): Ditto.
7581         * config/rs6000/rs6000.c (rs6000_expand_vector_init,
7582         rs6000_expand_vector_set, rs6000_expand_vector_extract,
7583         rs6000_allocate_stack_temp): Ditto.
7584         * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
7585         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
7586         sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
7587         sparc_expand_vector_init): Ditto.
7589 2012-05-29  Michael Matz  <matz@suse.de>
7591         * c-tree.h (c_expand_decl): Remove prototype.
7593         * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
7594         a kept temp.
7595         (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
7596         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
7597         COMPOUND_LITERAL_EXPR.
7598         * function.c (expand_function_start): Don't call expand_decl,
7599         instead assert that we have RTL assigned.
7600         * tree-ssa-live.c (remove_unused_locals): Clear
7601         nonlocal_goto_save_area if its backing variable is removed.
7602         * stmt.c (expand_asm_operands): Remove handling of non-lvalues
7603         as mem inputs.
7604         (expand_decl): Assert that this does nothing.
7605         * calls.c (expand_call): Don't call mark_temp_addr_taken.
7607 2012-05-29  Richard Guenther  <rguenther@suse.de>
7609         PR tree-optimization/53516
7610         * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
7611         bitfield accesses.
7612         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
7614 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
7616         * LANGUAGES: Fix typos.
7617         * Makefile.in: Fix typos.
7618         * alias.c: Fix typos.
7619         * auto-inc-dec.c: Fix typos.
7620         * bb-reorder.c: Fix typos.
7621         * cfgcleanup.c: Fix typos.
7622         * cgraph.c: Fix typos.
7623         * cgraph.h: Fix typos.
7624         * cgraphunit.c: Fix typos.
7625         * collect2-aix.h: Fix typos.
7626         * collect2.c: Fix typos.
7627         * compare-elim.c: Fix typos.
7628         * config/alpha/vms.h: Fix typos.
7629         * config/arm/README-interworking: Fix typos.
7630         * config/arm/arm.c: Fix typos.
7631         * config/arm/iterators.md: Fix typos.
7632         * config/arm/vxworks.h: Fix typos.
7633         * config/avr/avr.c: Fix typos.
7634         * config/avr/avr.h: Fix typos.
7635         * config/avr/avr.md: Fix typos.
7636         * config/avr/builtins.def: Fix typos.
7637         * config/c6x/c6x.c: Fix typos.
7638         * config/cr16/cr16.c: Fix typos.
7639         * config/cr16/cr16.md: Fix typos.
7640         * config/cris/cris.md: Fix typos.
7641         * config/darwin.c: Fix typos.
7642         * config/darwin.opt: Fix typos.
7643         * config/i386/i386-c.c: Fix typos.
7644         * config/i386/i386.c: Fix typos.
7645         * config/ia64/ia64.c: Fix typos.
7646         * config/m68k/cf.md: Fix typos.
7647         * config/mep/mep.c: Fix typos.
7648         * config/microblaze/microblaze.c: Fix typos.
7649         * config/microblaze/microblaze.h: Fix typos.
7650         * config/mn10300/mn10300.c: Fix typos.
7651         * config/mn10300/mn10300.md: Fix typos.
7652         * config/pa/pa.c: Fix typos.
7653         * config/picochip/picochip.h: Fix typos.
7654         * config/rs6000/a2.md: Fix typos.
7655         * config/rs6000/rs6000.c: Fix typos.
7656         * config/rs6000/vector.md: Fix typos.
7657         * config/rx/rx.md: Fix typos.
7658         * config/rx/rx.opt: Fix typos.
7659         * config/s390/2097.md: Fix typos.
7660         * config/s390/s390.c: Fix typos.
7661         * config/s390/s390.h: Fix typos.
7662         * config/sh/sh.c: Fix typos.
7663         * config/sh/sh.md: Fix typos.
7664         * config/sparc/sync.md: Fix typos.
7665         * config/spu/spu.c: Fix typos.
7666         * config/spu/spu.md: Fix typos.
7667         * config/vms/vms.c: Fix typos.
7668         * config/vxworks-dummy.h: Fix typos.
7669         * config/vxworks.h: Fix typos.
7670         * cselib.c: Fix typos.
7671         * df-scan.c: Fix typos.
7672         * df.h: Fix typos.
7673         * doc/extend.texi: Fix typos.
7674         * doc/install.texi: Fix typos.
7675         * doc/invoke.texi: Fix typos.
7676         * doc/md.texi: Fix typos.
7677         * doc/plugins.texi: Fix typos.
7678         * doc/rtl.texi: Fix typos.
7679         * dse.c: Fix typos.
7680         * dwarf2asm.c: Fix typos.
7681         * dwarf2out.c: Fix typos.
7682         * except.h: Fix typos.
7683         * expr.c: Fix typos.
7684         * fold-const.c: Fix typos.
7685         * gcc.c: Fix typos.
7686         * gcse.c: Fix typos.
7687         * genautomata.c: Fix typos.
7688         * gengtype-state.c: Fix typos.
7689         * gengtype.c: Fix typos.
7690         * genhooks.c: Fix typos.
7691         * gimple-fold.c: Fix typos.
7692         * gimple-pretty-print.c: Fix typos.
7693         * gimple.c: Fix typos.
7694         * gimple.h: Fix typos.
7695         * gimplify.c: Fix typos.
7696         * graphite-interchange.c: Fix typos.
7697         * graphite-sese-to-poly.c: Fix typos.
7698         * ifcvt.c: Fix typos.
7699         * input.c: Fix typos.
7700         * ipa-cp.c: Fix typos.
7701         * ipa-inline-analysis.c: Fix typos.
7702         * ipa-inline-transform.c: Fix typos.
7703         * ipa-inline.c: Fix typos.
7704         * ipa-pure-const.c: Fix typos.
7705         * ipa-ref.h: Fix typos.
7706         * ipa-reference.c: Fix typos.
7707         * ipa-utils.c: Fix typos.
7708         * ipa.c: Fix typos.
7709         * ira-emit.c: Fix typos.
7710         * ira-lives.c: Fix typos.
7711         * lto-streamer.c: Fix typos.
7712         * lto-streamer.h: Fix typos.
7713         * lto-wrapper.c: Fix typos.
7714         * mcf.c: Fix typos.
7715         * mode-switching.c: Fix typos.
7716         * modulo-sched.c: Fix typos.
7717         * plugin.c: Fix typos.
7718         * postreload.c: Fix typos.
7719         * sched-deps.c: Fix typos.
7720         * sel-sched-ir.c: Fix typos.
7721         * sel-sched-ir.h: Fix typos.
7722         * sel-sched.c: Fix typos.
7723         * sese.c: Fix typos.
7724         * stor-layout.c: Fix typos.
7725         * target-hooks-macros.h: Fix typos.
7726         * target.def: Fix typos.
7727         * trans-mem.c: Fix typos.
7728         * tree-eh.c: Fix typos.
7729         * tree-predcom.c: Fix typos.
7730         * tree-sra.c: Fix typos.
7731         * tree-ssa-address.c: Fix typos.
7732         * tree-ssa-loop-ivopts.c: Fix typos.
7733         * tree-ssa-loop-niter.c: Fix typos.
7734         * tree-ssa-math-opts.c: Fix typos.
7735         * tree-ssa-pre.c: Fix typos.
7736         * tree-ssa-propagate.c: Fix typos.
7737         * tree-ssa-reassoc.c: Fix typos.
7738         * tree-ssa-sccvn.c: Fix typos.
7739         * tree-ssa-ter.c: Fix typos.
7740         * tree-ssa-uninit.c: Fix typos.
7741         * tree-ssanames.c: Fix typos.
7742         * tree-vect-generic.c: Fix typos.
7743         * tree-vect-slp.c: Fix typos.
7744         * tree.c: Fix typos.
7745         * tree.h: Fix typos.
7746         * varasm.c: Fix typos.
7747         * varpool.c: Fix typos.
7749 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
7751         * doc/include/texinfo.tex: Update to version 2012-05-16.16.
7753 2012-05-29  Richard Guenther  <rguenther@suse.de>
7755         * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
7756         for globals.
7757         (add_referenced_var_1): Re-organize.  Assert we are not
7758         called for globals.
7759         (remove_referenced_var): Likewise.
7760         * varpool.c (add_new_static_var): Use create_tmp_var_raw.
7761         * tree-mudflap.c (execute_mudflap_function_ops): Do not
7762         call add_referenced_var on globals.
7763         * matrix-reorg.c (transform_access_sites): Likewise.
7765 2012-05-29  Steven Bosscher  <steven@gcc.gnu.org>
7767         * alias.c (reg_known_value): Make this a VEC.
7768         (reg_known_equiv_p): Make this an sbitmap.
7769         (reg_known_value_size): Remove.
7770         (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
7771         set_reg_known_equiv_p): Update for reg_known_value and
7772         reg_known_value_size data structure change.
7773         (init_alias_analysis, end_alias_analysis): Likewise.
7775 2012-05-29  Jakub Jelinek  <jakub@redhat.com>
7777         PR middle-end/53510
7778         * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
7779         to avoid leaking memory.  No need to handle memory allocation
7780         failure.  Double string_len on each reallocation instead of adding 2.
7781         * gcov.c (read_line): Likewise.
7783 2012-05-29  Hans-Peter Nilsson  <hp@axis.com>
7785         * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
7786         New macros.
7787         * config/cris/cris.md ("trap"): Define, enabled for
7788         TARGET_TRAP_USING_BREAK8.
7789         * config/cris/cris.opt (mtrap-using-break8): New option.
7791 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
7793         PR c++/25137
7794         * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
7795         for C++.
7797 2012-05-28  Hans-Peter Nilsson  <hp@axis.com>
7799         * doc/md.texi (stack_protect_test): Remove negation of branch to label.
7800         (Standard Names): Fix typos in documentation of atomic patterns.
7802 2012-05-27  Nathan Sidwell  <nathan@acm.org>
7804         * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
7806 2012-05-26  Jason Merrill  <jason@redhat.com>
7808         PR c++/53220
7809         * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
7810         about array compound literals.
7812 2012-05-26  Eric Botcazou  <ebotcazou@adacore.com>
7814         * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
7815         if CLEANUP_NO_INSN_DEL.
7816         * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
7817         from cfg_layout_merge_blocks.
7818         (emit_nop_for_unique_locus_between): New function.
7819         (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
7820         (cfg_layout_merge_blocks): Likewise.
7822 2012-05-26  Dimitrios Apostolou  <jimis@gmx.net>
7823             Paolo Bonzini  <bonzini@gnu.org>
7825         * df-scan.c (df_def_record_1): Assert a parallel must contain an
7826         EXPR_LIST at this point.  Receive the LOC and move its extraction...
7827         (df_defs_record): ... here. Change if-else to a switch statement.
7828         (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
7829         (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
7830         and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
7831         DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
7832         regs_invalidated_by_call.
7833         (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
7834         df_get_call_refs().
7836 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
7838         PR lto/52178
7839         * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
7840         * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
7842 2012-05-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
7844         * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
7845         software floating point emulation.  No longer build the multilibs
7846         with -mstrict-align.
7848 2012-05-25  Aldy Hernandez  <aldyh@redhat.com>
7850         PR middle-end/53008
7851         * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
7852         accessed indirectly.
7853         (ipa_tm_create_version): Same.
7855 2012-05-25  Uros Bizjak  <ubizjak@gmail.com>
7857         PR target/53474
7858         * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
7859         <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
7861 2012-05-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7863         PR target/53435
7864         * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
7865         (ix86_expand_vec_perm): Use int mode instead of float.
7866         (expand_vec_perm_pshufb): Remove handling of useseless type
7867         conversion.
7869 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
7871         PR ada/52362
7872         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
7873         gnu_ld variables to yes.
7874         * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
7875         (HAVE_GNU_AS): Likewise.
7876         * config.in: Regenerate.
7877         * configure: Likewise.
7879 2012-05-25  Tristan Gingold  <gingold@adacore.com>
7881         * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
7882         (ix86_compute_frame_layout): Fix type of stack_alignment_needed
7883         and preferred_alignment.
7885 2012-05-25  Tristan Gingold  <gingold@adacore.com>
7887         * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
7889 2012-05-25  Thomas Schwinge  <thomas@codesourcery.com>
7891         * fold-const.c (optimize_bit_field_compare): Abort early in the strict
7892         volatile bitfields case.
7894 2012-05-24  Pat Haugen  <pthaugen@us.ibm.com>
7896         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
7897         rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
7898         (adjacent_mem_locations): Move some code to and call...
7899         (get_memref_parts): ...new function.
7900         (mem_locations_overlap): New function.
7901         (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
7902         (is_mem_ref): Rename to...
7903         (find_mem_ref): ...this. Return MEM rtx.
7904         (get_store_dest): Remove function.
7905         (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
7906         new parameter and adjust calls.
7907         (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
7908         mem refs overlap for true_store_to_load_dep_costly.
7909         (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
7910         passed to adjacent_mem_locations.
7911         (is_costly_group): Walk resolved dependency list.
7912         (force_new_group): Emit group ending nop for Power6/Power7.
7913         * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
7914         (group_ending_nop): New define_insn.
7916 2012-05-24  Dodji Seketeli  <dodji@redhat.com>
7918         Make unwound macro expansion trace less redundant
7919         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
7920         context of macro definition in the trace, when it's redundant.
7921         Update comments.
7923 2012-05-24  Richard Guenther  <rguenther@suse.de>
7925         PR middle-end/53460
7926         * tree-profile.c (tree_profiling): Cleanup the CFG if
7927         execute_fixup_cfg requests it.
7929 2012-05-24  Richard Guenther  <rguenther@suse.de>
7931         * tree-flow.h (create_var_ann): Remove.
7932         * tree-dfa.c (create_var_ann): Remove and inline into its
7933         single caller ...
7934         (add_referenced_var_1): ... here.
7935         * varpool.c (add_new_static_var): Do not call add_referenced_var
7936         for global vars.
7937         * gimple-fold.c (canonicalize_constructor_val): Likewise.
7938         * tree-switch-conversion.c (build_one_array): Likewise.
7939         * tree-profile.c (gimple_gen_ic_profiler): Likewise.
7940         * tree-flow-inline.h (gimple_referenced_vars): Guard against
7941         NULL fn argument.
7942         * tree-inline.c (remap_gimple_op_r): Likewise.  Check
7943         gimple_referenced_vars instead of gimple_in_ssa_p.
7944         (copy_tree_body_r): Likewise.
7945         (setup_one_parameter): Likewise.
7946         (declare_return_variable): Likewise.
7947         (tree_function_versioning): Likewise.
7949 2012-05-24  Jakub Jelinek  <jakub@redhat.com>
7951         PR tree-optimization/53465
7952         * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
7953         vr0 into *vr, then vrp_meet that.
7954         (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
7955         have any equivalences.
7956         (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
7957         first time.
7959 2012-05-24  Jim MacArthur  <jim.macarthur@arm.com>
7961         * recog.c (reg_fits_class_p): Check both regno and regno + offset are
7962         hard registers.
7963         * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
7964         check end_regno - 1 is a hard register.
7966 2012-05-24  Richard Guenther  <rguenther@suse.de>
7968         * varpool.c (add_new_static_var): Remove call to create_var_ann.
7969         * tree-ssa-operands.c (create_vop_var): Likewise.
7971 2012-05-24  Richard Guenther  <rguenther@suse.de>
7973         PR bootstrap/53466
7974         * tree-ssa-live.c (remove_unused_scope_block_p): Properly
7975         handle globals.
7976         (remove_unused_locals): Pass global_unused_vars to
7977         remove_unused_scope_block_p.  Restore code walking all
7978         referenced vars and pruning them.
7980 2012-05-23  Jan Hubicka  <jh@suse.cz>
7982         * tree.h (alias_diag_flags): Remove.
7983         (alias_pair): Remove emitted_diags.
7984         (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
7985         symbol_alias_set_t, symbol_alias_set_destroy,
7986         symbol_alias_set_contains, propagate_aliases_backward): Remove.
7987         * toplev.c (compile_file): Do not call finish_aliases_2
7988         * cgraphunit.c (cgraph_process_new_functions): Do not call
7989         finish_aliases_1.
7990         (handle_alias_pairs): Output diagnostics about aliases to externals.
7991         (assemble_thunks_and_aliases): Use do_assemble_alias.
7992         (output_weakrefs): Likewise.
7993         (finalize_compilation_unit): Do not call finish_aliases_1.
7994         * ipa.c (symtab_remove_unreachable_nodes): De not call
7995         remove_unreachable_alias_pairs.
7996         * varasm.c (do_assemble_alias): Export.
7997         (symbol_alias_set_create, symbol_alias_set_destroy,
7998         symbol_alias_set_contains, symbol_alias_set_insert,
7999         propagate_aliases_forward, propagate_aliases_backward,
8000         propagate_aliases_backward, trivially_visible_alias,
8001         trivially_defined_alias, remove_unreachable_alias_pairs,
8002         finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
8003         * output.h (do_assemble_alias): Declare.
8004         * varpool.c (varpool_remove_unreferenced_decls): Do not call
8005         finish_aliases_1.
8007 2012-05-23  Martin Jambor  <mjambor@suse.cz>
8009         * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
8011 2012-05-23  Eric Botcazou  <ebotcazou@adacore.com>
8013         * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
8014         size handling.
8015         (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
8016         (iterative_hash_gimple_type): Adjust comment.
8017         (iterative_hash_canonical_type): Likewise.  Hash the bounds of the
8018         domain for an array type instead of the domain type itself.
8020 2012-05-23  Richard Guenther  <rguenther@suse.de>
8022         PR tree-optimization/53438
8023         * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
8025 2012-05-23  Georg-Johann Lay  <avr@gjlay.de>
8027         PR target/53448
8028         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
8029         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
8030         ASM_OUTPUT_ALIGN.
8032 2012-05-23  Richard Guenther  <rguenther@suse.de>
8034         * tree-dfa.c (add_referenced_var_1): Do not add global vars.
8035         * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
8036         via the global_unused_vars bitmap.
8037         (remove_unused_locals): Handle global vars in local-decls via
8038         a global_unused_vars bitmap instead of the used flag in the
8039         var annotation.  Simplify global variable handling and removal.
8041 2012-05-22  Jan Hubicka  <jh@suse.cz>
8043         PR middle-end/53426
8044         * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
8045         from other partitions.
8047 2012-05-22  Jan Hubicka  <jh@suse.cz>
8049         PR middle-end/53161
8050         * symtab.c (symtab_register_node): Fix ordering issue.
8052 2012-05-22  Steven Drake <sbd@NetBSD.org>
8054         * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
8056 2012-05-22  David Edelsohn  <dje.gcc@gmail.com>
8058         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
8059         Use strip_name_encoding target hook.
8061 2012-05-22  Richard Guenther  <rguenther@suse.de>
8063         * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
8064         (init_function_for_compilation): Remove.
8065         * tree-dfa.c (find_vars_r): Take struct function argument.
8066         (find_referenced_vars_in): Adjust.
8067         * tree-ssa-operands.c (clobber_stats): Remove.
8068         (create_vop_var): Take struct function argument.  Mark
8069         virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
8070         (init_ssa_operands): Take struct function argument.
8071         (fini_ssa_operands): Do not dump dead stats.
8072         * tree-ssa-operands.h (init_ssa_operands): Take struct function
8073         argument.
8074         * cgraphunit.c (init_lowered_empty_function): Adjust.
8075         * lto-streamer-in.c (input_cfg): Likewise.
8076         * tree-inline.c (initialize_cfun): Likewise.
8077         * tree-into-ssa.c (rewrite_into_ssa): Likewise.
8078         * omp-low.c (expand_omp_taskreg): Likewise.  Avoid switching cfun.
8079         * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
8080         virtual operands are not registers.
8082 2012-05-22  Richard Guenther  <rguenther@suse.de>
8084         * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
8086 2012-05-22  Richard Guenther  <rguenther@suse.de>
8088         PR middle-end/53437
8089         * tree-inline.c (setup_one_parameter): Create a dummy init
8090         statement for unused parameters when not optimizing.
8092 2012-05-22  Richard Guenther  <rguenther@suse.de>
8094         * tree-flow.h (add_referenced_var_1): Declare.
8095         (add_referenced_var): Define.
8096         * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
8097         (add_referenced_var): Rename to ...
8098         (add_referenced_var_1): ... this.  Take struct function argument.
8100 2012-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8102         PR target/53334
8103         * config/arm/arm-protos.h (arm_validize_comparison): Declare.
8104         * config/arm/arm.c (arm_validize_comparison): Define.
8105         * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
8106         arm_validize_comparison.
8107         ("cbranchdi4"): Likewise.
8108         ("cstoredi4"): Likewise.
8109         ("movsicc"): Likewise.
8110         ("movsfcc"): Likewise.
8111         ("movdfcc"): Likewise.
8113 2012-05-22  Dimitrios Apostolou  <jimis@gmx.net>
8115         * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
8116         the mw_reg_pool size.
8118 2012-05-22  Paolo Bonzini  <bonzini@gnu.org>
8120         PR tree-optimization/53336
8121         * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
8122         non-integer integral types to offset type and vice versa.
8124 2012-05-22  Alan Modra  <amodra@gmail.com>
8126         * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
8127         * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
8128         * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
8129         V_SAVE_INLINE): Delete.
8130         * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
8131         (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
8132         For ELF targets, use out-of-line restores for -Os and any number
8133         of regs if the restore exits, and out-of-line gp save for two or
8134         more regs.  Use save_reg_p to test for holes in reg restore set.
8135         Replace "#if" with "if".
8137 2012-05-22  Alan Modra  <amodra@gmail.com>
8139         * config/rs6000/rs6000.c (save_reg_p): New function.
8140         (first_reg_to_save, first_fp_reg_to_save): Use it here.
8141         (first_altivec_reg_to_save, restore_saved_cr): Likewise.
8142         (emit_frame_save): Use gen_frame_store.
8143         (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
8144         (rs6000_emit_prologue): Use save_reg_p.  Use gen_frame_store for
8145         vrsave and toc.
8146         (rs6000_emit_epilogue): Use save_reg_p.  Use gen_frame_load for
8147         vrsave, toc, gp and fp restores.
8149 2012-05-22  Alan Modra  <amodra@gmail.com>
8151         * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
8152         Move those with ATTRIBUTE_UNUSED to immediately before definitions.
8153         Move function pointer variables after forward declarations.
8154         (rs6000_builtin_support_vector_misalignment): Make static.
8155         (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
8156         (rs6000_function_value, rs6000_can_eliminate): Likewise.
8158 2012-05-21  Bernd Schmidt  <bernds@codesourcery.com>
8160         PR rtl-optimization/53373
8161         * caller-save.c (save_call_clobbered_regs): Look into a possible
8162         PARALLEL manually rather than using single_set on a call insn.
8164 2012-05-21  Jakub Jelinek  <jakub@redhat.com>
8166         PR tree-optimization/53436
8167         * omp-low.c (omp_build_component_ref): New function.
8168         (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
8170 2012-05-21  Uros Bizjak  <ubizjak@gmail.com>
8172         * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
8173         arguments to bool.
8174         (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
8175         Do not print '.' here.  Output operand lossage error for unhandled
8176         sizes.  Move.
8177         <case '*'>: Move.
8178         <case '&'>: Ditto.
8179         <case 'Y'>: Ditto.
8180         <case 'z'>: Hardcode "code" argument into error strings.
8181         <case 'Z'>: Ditto.
8182         <case 'D'>: Merge AVX and non-AVX codes.
8183         <case 'C', case 'c', case 'F', case 'f'>: Merge.  Fix error string.
8184         Update call to put_condition_code.
8186 2012-05-21  Andreas Schwab  <schwab@linux-m68k.org>
8188         * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2.  Call
8189         CC_STATUS_INIT.
8190         (clzsi2): New expander.
8191         (*clzsi2_68k): New insn.
8192         * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
8194 2012-05-21  Aldy Hernandez  <aldyh@redhat.com>
8196         * gimple.h (gimple_set_in_transaction): Remove.
8197         (gimple_in_transaction): Look in BB instead.
8198         (gimple_statement_base): Remove in_transaction field.
8199         * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
8200         * trans-mem.c (compute_transaction_bits): Place transaction bit
8201         information into basic blocks.
8203 2012-05-21  Andreas Schwab  <schwab@linux-m68k.org>
8205         * expr.c (get_def_for_expr_class): Define only if
8206         HAVE_conditional_move.
8207         (convert_tree_comp_to_rtx): Likewise.
8209 2012-05-21  Uros Bizjak  <ubizjak@gmail.com>
8211         PR target/53399
8212         * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
8213         for TARGET_BMI.
8214         (ffssi2_no_cmove): Ditto.
8215         (*ffs<mode>_1): Remove insn pattern.
8216         (*tzcnt<mode>_1): New insn pattern.
8217         (*bsf<mode>1): Ditto.
8219 2012-05-21  Richard Guenther  <rguenther@suse.de>
8221         * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
8222         more referenced vars.
8223         * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
8224         flag on variables that have a var-annotation.
8226 2012-05-21  Joseph Myers  <joseph@codesourcery.com>
8228         PR c/53418
8229         * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
8230         from folded operands before wrapping another around the
8231         conditional expression.
8233 2012-05-21  Jakub Jelinek  <jakub@redhat.com>
8235         PR tree-optimization/53366
8236         * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
8237         tests if complex_numbers == 2, but there are non-complex number loads
8238         too.
8240         PR tree-optimization/53409
8241         * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
8242         vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
8244         PR tree-optimization/53410
8245         * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
8246         instead of build_int_cst (type, 0) where vector types might be
8247         involved. Instead of build_int_cst (type, 1) convert the original
8248         integer_onep argument to the desired type.
8250 2012-05-21  Michael Matz  <matz@suse.de>
8252         * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
8253         (simplify_test_exp): Handle one more case of distributive law,
8254         decrease cost threshold.
8255         (tests_attr_p, get_attr_order): New functions.
8256         (optimize_attrs): Use topological order, inline only cheap values.
8257         (write_attr_set): Reset our_known_true after some time.
8259 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8261         PR target/53425
8262         * config/i386/i386.c (type_natural_mode): Warn passing SSE
8263         vector argument without SSE enabled changes the ABI.
8265 2012-05-21  Richard Guenther  <rguenther@suse.de>
8267         PR tree-optimization/53408
8268         * tree-vect-loop.c (vectorizable_induction): Properly check
8269         the restriction that we cannot handle induction results from
8270         the inner loop outside of the outer loop.
8272 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8274         PR target/53416
8275         * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
8276         (UNSPECV_RDRAND): This.
8277         (rdrand<mode>_1): Updated.
8279 2012-05-21  Richard Guenther  <rguenther@suse.de>
8281         * tree-loop-distribution.c (can_generate_builtin): Reject
8282         volatile stmts.
8284 2012-05-21  Chung-Lin Tang  <cltang@codesourcery.com>
8286         * Makefile.in (options.c): Add options.h to included header
8287         files, before tm.h.
8289 2012-05-21  Razya Ladelsky  <razya@il.ibm.com>
8291         * tree-parloops.c : Add myself to contributors, update
8292         TODO list, add link to wiki.
8294 2012-05-21  Alan Modra  <amodra@gmail.com>
8296         * config/rs6000/predicates.md (input_operand): Don't match
8297         constant pool addresses.  Remove label_ref, high and plus from
8298         match_code list.  Remove redundant CONSTANT_P test.
8299         (splat_input_operand): Similarly update match_code list.
8300         (small_toc_ref): New predicate.
8301         * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
8302         * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
8303         (legitimate_constant_pool_address_p): Move TARGET_TOC test and
8304         register checks to..
8305         (toc_relative_expr_p): ..here.  Add "strict" param.  Match new rtl
8306         generated by create_TOC_reference.
8307         (rs6000_legitimize_address): Update cerate_TOC_reference call.
8308         (rs6000_delegitimize_address): Handle new rtl for toc refs.
8309         (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
8310         (use_toc_relative_ref): New function, split out from..
8311         (rs6000_emit_move): ..here.  Remove redundant tests.  Update
8312         create_TOC_reference calls.
8313         (rs6000_legitimize_reload_address): Formatting.  Handle splitting
8314         of medium/large model toc addresses.  Use use_toc_relative_ref.
8315         (print_operand): Formatting, style.  Adjust for toc changes.
8316         (print_operand_address): Likewise.
8317         (rs6000_output_addr_const_extra): Likewise.
8318         (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
8319         than a PLUS.  Use this formulation for both high and low part
8320         of -mcmodel=medium/large toc reference too.  Before reload,
8321         always use the small model formulation.
8322         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
8323         a PLUS in high part of addresses here.
8324         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
8325         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
8326         (largetoc_high, largetoc_low): Move earlier.  Cope when no
8327         base reg available.
8328         (largetoc_high_plus): New insn.
8329         (movsi_internal1, movsi_internal1_single, movsf_softfloat,
8330         movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
8331         (tocref): ..instead do so here, new insn and split.
8333 2012-05-20  H.J. Lu  <hongjiu.lu@intel.com>
8335         * config/i386/driver-i386.c (host_detect_local_cpu): Support
8336         RDRND, F16C and FSGSBASE.
8338 2012-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8340         PR rtl-optimzation/53373
8341         * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
8342         call pattern.  Update split patterns.
8343         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
8344         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
8346 2012-05-20  Razya Ladelsky  <razya@il.ibm.com>
8348         * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
8349         for outer loops.
8351 2012-05-18  Jan Hubicka  <jh@suse.cz>
8353         * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
8354         (cgraph_process_new_functions): Process also aliases.
8355         * lto-streamer-out.c (struct sets): Remove.
8356         (trivally_defined_alias): Remove.
8357         (output_alias_pair_p): Remove.
8358         (output_unreferenced_globals): Remove.
8359         (produce_symtab); Do not handle alias pairs.
8360         (produce_asm_for_decls): Likewise.
8361         * lto-streamer-in.c (input_alias_pairs): Remove.
8362         (lto_read_body): Do not input alias pairs.
8363         (lto_input_constructors_and_inits): Remove.
8365 2012-05-18  Jan Hubicka  <jh@suse.cz>
8367         * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
8368         aliases.
8370 2012-05-18  Jan Hubicka  <jh@suse.cz>
8372         * cgraphbuild.c (record_reference): Update.
8373         * lto-cgraph.c (lto_output_varpool_node): External vars
8374         are not in other partition even if they are not output
8375         in current partition.
8376         * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
8377         argument; fix.
8378         (canonicalize_constructor_val): Take FROM_DECL argument.
8379         (fold_ctor_reference, fold_string_cst_ctor_reference,
8380         fold_array_ctor_reference, fold_nonarray_ctor_reference,
8381         fold_ctor_reference): Likewise.
8382         (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
8383         * gimple.h (gimple_fold_builtin): Likewise.
8385 2012-05-18  Olivier Hainque  <hainque@adacore.com>
8387         * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
8388         $(libsubdir) as libexecsubdir.
8390 2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8392         * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
8393         relied on signed overflow behavior.
8395 2012-05-18  Richard Guenther  <rguenther@suse.de>
8397         PR tree-optimization/53346
8398         * tree-loop-distribution.c (ldist_gen): Make sure to apply
8399         builtin transform even when only a single partition with
8400         all reads/writes exists.
8402 2012-05-18  Richard Guenther  <rguenther@suse.de>
8404         PR tree-optimization/53390
8405         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
8406         strided loads.
8408 2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8410         * tree-ssa-reassoc.c (bip_map): Remove decl.
8411         (completely_remove_stmt): Remove function.
8412         (remove_def_if_absorbed_call): Remove function.
8413         (remove_visited_stmt_chain): Remove __builtin_powi handling.
8414         (possibly_move_powi): Remove function.
8415         (rewrite_expr_tree): Remove calls to possibly_move_powi.
8416         (rewrite_expr_tree_parallel): Likewise.
8417         (attempt_builtin_powi): Build multiplies explicitly rather than
8418         relying on the ops vector and rank system.
8419         (transform_stmt_to_copy): New function.
8420         (transform_stmt_to_multiply): Likewise.
8421         (reassociate_bb): Handle leftover operations after __builtin_powi
8422         optimization; build a final multiply if necessary.
8424 2012-05-18  Jan Hubicka  <jh@suse.cz>
8426         * cgraphunit.c (varpool_finalize_decl): Allow external decls.
8427         (mark_functions_to_output): Fix sanity check.
8428         * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
8430 2012-05-18  Richard Guenther  <rguenther@suse.de>
8432         * tree-flow.h (mark_symbols_for_renaming): Remove.
8433         * tree-dfa.c (mark_symbols_for_renaming): Likewise.
8434         * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
8435         (copy_debug_stmt): Likewise.
8436         (expand_call_inline): Likewise.
8437         (declare_return_variable): Mark the return variable for renaming
8438         if necessary.
8440 2012-05-18  Andrew Stubbs  <ams@codesourcery.com>
8442         * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
8443         prototype.
8444         * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
8445         * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
8446         (ashrdi3,lshrdi3): Likewise.
8447         (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
8449 2012-05-18  Meador Inge  <meadori@codesourcery.com>
8451         PR rtl-optimization/53352
8452         * cse.c (equiv_constant): Ignore paradoxical subregs.
8454 2012-05-17  Steven Bosscher  <steven@gcc.gnu.org>
8456         PR rtl-optimization/53125
8457         * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
8458         argument.  Simplify calculation of REG_LIVE_LENGTH for regnos that
8459         die in the basic block.  Correctly top off REG_FREQ and
8460         REG_FREQ_CALLS_CROSSED.
8461         Remove do_not_gen.
8462         (regstat_compute_ri): Allocate and free local_live_last_luid.
8463         Remove do_not_gen.
8464         (regstat_bb_compute_calls_crossed): Correctly top off
8465         REG_FREQ_CALLS_CROSSED.
8467 2012-05-17  Jan Hubicka  <jh@suse.cz>
8469         * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
8470         constructor over decl without.
8471         * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
8472         * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
8473         * cgraphunit.c (process_function_and_variable_attributes): Finalize
8474         extrnal decls.
8475         (mark_functions_to_output): Also accept bodies for functions with
8476         clones.
8477         (output_in_order): Skip external vars.
8478         * lto-cgraph.c (lto_output_node): External functions are never in other
8479         partition.
8480         (lto_output_varpool_node): Likewise.
8481         * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
8482         forgotten initializers.
8483         * ipa.c (process_references): Handle external vars.
8484         (symtab_remove_unreachable_nodes): Update to handle external vars.
8485         (varpool_externally_visible_p): External vars are externally visible.
8486         * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
8487         * varpool.c (varpool_remove_node): Remove constructor.
8488         (decide_is_variable_needed): Handle externals.
8489         (varpool_remove_unreferenced_decls): Likewise.
8491 2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8493         * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
8494         (enable_warning_as_error): Do not special case Wuninitialized.
8495         * optc-gen.awk: Add sanity checks.
8497 2012-05-17  Jan Hubicka  <jh@suse.cz>
8499         * ipa-reference.c (is_proper_for_analysis): Do not check flags
8500         that might change as result of global optimization.
8501         (analyze_function): Do not check analyzed and externally_visible
8502         flags; be happy about address dereferences.
8503         (propagate): Prune all_module_statics so it really contains just
8504         statics; prune all the local summaries.
8505         (ipa_reference_write_optimization_summary): Simplify.
8507 2012-05-17  Kwok Cheung Yeung  <kcy@codesourcery.com>
8509         * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
8510         * config/m68k/m68k-tables.opt: Regenerated.
8511         * doc/invoke.texi (M680x0 Options): Document.
8513 2012-05-16  Dave Boutcher  <daveboutcher@gmail.com>
8514             Patrick Marlier  <patrick.marlier@gmail.com>
8516         * trans-mem.c (ipa_tm_transform_clone): Transform functions with
8517         indirect calls.
8519 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
8521         * configure: Regenerated.
8523 2012-05-16  Andrew Pinski  <apinski@cavium.com>
8525         * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
8526         GIMPLE_ASSIGN.
8528 2012-05-16  David S. Miller  <davem@davemloft.net>
8530         * jump.c (delete_related_insns): If we remove a CALL, make sure
8531         we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
8533 2012-05-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8535         PR tree-optimization/53217
8536         * tree-ssa-reassoc.c (bip_map): New static variable.
8537         (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
8538         (attempt_builtin_powi): Save feeding multiplies on a stack.
8539         (reassociate_bb): Create and destroy bip_map.
8541 2012-05-16  Olivier Hainque  <hainque@adacore.com>
8543         * Makefile.in (install-no-fixedincludes): New target, former toplevel
8544         gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
8545         Add comments and improve stamp preservation across the whole sequence.
8546         (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
8548 2012-05-16  Richard Guenther  <rguenther@suse.de>
8550         * tree-inline.c (insert_init_stmt): Do not call
8551         mark_symbols_for_renaming.
8552         (setup_one_parameter): Avoid initializing unused parameters.
8553         (declare_return_variable): Properly handle DECL_BY_REFERENCE
8554         return vars in SSA form.
8556 2012-05-16  Richard Guenther  <rguenther@suse.de>
8558         * tree-flow.h (get_virtual_var): Remove.
8559         * tree-dfa.c (get_virtual_var): Likewise.
8561 2012-05-16  Richard Guenther  <rguenther@suse.de>
8563         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
8564         Remove set-only bitmap of new names.
8565         (slpeel_tree_peel_loop_to_edge): Likewise.  Do not set
8566         CFG hooks.
8567         * tree-flow.h (ssa_names_to_replace): Remove.
8568         * tree-into-ssa.c (ssa_names_to_replace): Likewise.
8570 2012-05-16  Richard Guenther  <rguenther@suse.de>
8572         PR tree-optimization/53364
8573         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
8574         detect a view-conversion of the decl.
8576 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
8578         PR preprocessor/7263
8579         * c-tree.h (enum c_declspec_word): Declare new enum.
8580         (struct c_declspecs::locations): New member.
8581         (declspecs_add_qual, declspecs_add_scspec)
8582         (declspecs_add_addrspace, declspecs_add_alignas): Take a new
8583         location parameter.
8584         * c-decl.c (build_null_declspecs): Initialize the new struct
8585         c_declspecs::locations member.
8586         (declspecs_add_addrspace): Take a location parameter for the
8587         address space.  Store it onto declaration specifiers.
8588         (declspecs_add_qual): Likewise, take a location parameter for the
8589         qualifier.
8590         (declspecs_add_type): Likewise, take a location parameter for the
8591         type specifier.
8592         (declspecs_add_scspec): Likewise, take a location parameter for
8593         the storage class specifier.
8594         (declspecs_add_attrs): Likewise, take a location parameter for the
8595         first attribute.
8596         (declspecs_add_alignas): Likewise, take a location parameter for
8597         the alignas token.
8598         (finish_declspecs): For diagnostics, use the location of the
8599         relevant declspec, instead of the global input_location.
8600         * c-parser.c (c_parser_parameter_declaration): Pass the precise
8601         virtual location of the declspec to the declspecs-setters.
8602         (c_parser_declspecs): Likewise.  Avoid calling c_parser_peek_token
8603         repeatedly.
8605 2012-05-16  Igor Zamyatin  <igor.zamyatin@intel.com>
8607         * configure.ac: Stack protector enabling for Android targets.
8608         * configure: Regenerate.
8610 2012-05-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
8612         * ira.c (pseudo_move_insn): Delete.
8613         (find_moveable_pseudos): Don't set it.
8614         (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
8615         the definitions of the original pseudo.  Delete all of them.
8617 2012-05-16  Olivier Hainque  <hainque@adacore.com>
8619         * config/rs6000/rs6000-opts.h (enum processor_type): Add
8620         PROCESSOR_PPC8548.
8621         * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
8622         * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
8623         * config/rs6000/8540.md: indicate that the units/patterns apply to
8624         ppc8548 as well.
8626         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
8627         default_cpu into implicit_cpu, conveying what --with-cpu was passed at
8628         configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
8629         related flags,  check that what is queried is supported by the selected
8630         configuration. Rework the single/double_float and MASK_STRING resets to
8631         hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
8632         costs for PROCESSOR_PPC8548 as well.
8633         (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
8634         (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
8635         statement instead of a sequence of ifs.
8637         * config/rs6000/rs6000.h (TARGET_E500): Remove.
8638         (TARGET_NO_LWSYNC): Adjust accordingly.
8639         * config/rs6000/e500.h (TARGET_E500): Remove.
8640         (CHECK_E500_OPTIONS): Adjust accordingly.
8641         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
8642         (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
8643         * config/rs6000/linuxspe.h: Likewise.
8644         * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
8645         superfluous comments.
8646         * config/rs6000/e500-double.h: Remove.
8648         * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
8649         default to with_cpu=8548 if --enable-e500-double, and to 8540
8650         otherwise.
8651         (set misc flags section): For powerpc*|rs6000*, remove inclusion
8652         of e500-double.h for --enable-e500-double.
8654 2012-05-16  Olivier Hainque  <hainque@adacore.com>
8656         * Makefile.in (s-header-vars): Resort to -n instead of trailing
8657         -e d in sed invocation.
8659 2012-05-16  Hans-Peter Nilsson  <hp@axis.com>
8661         * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
8662         source-code.
8663         * doc/tm.texi: Regenerate.
8665 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
8667         * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
8669 2012-05-15  Jakub Jelinek  <jakub@redhat.com>
8671         PR target/53358
8672         * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
8673         that operands[2] is either immediate, or q_regs_operand.
8675 2012-05-15  Richard Guenther  <rguenther@suse.de>
8677         * cgraphunit.c (thunk_adjust): Use make_rename_temp.
8678         (assemble_thunk): Likewise.  Manually rename and register
8679         function arguments.
8681 2012-05-15  Richard Guenther  <rguenther@suse.de>
8683         PR tree-optimization/53355
8684         * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
8685         by constants.
8687 2012-05-15  Tristan Gingold  <gingold@adacore.com>
8689         * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
8691 2012-05-15  Richard Guenther  <rguenther@suse.de>
8693         * gimple.c (gimple_set_modified): Move ...
8694         * gimple.h (gimple_set_modified): ... here.
8696 2012-05-15  Tristan Gingold  <gingold@adacore.com>
8698         * ira-color.c (move_spill_restore): Add a guard.
8700 2012-05-15  Tristan Gingold  <gingold@adacore.com>
8702         * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
8703         plus_constant.
8705 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
8707         * gimplify.c (gimplify_init_constructor): Do a block move for very
8708         small objects as well.
8710 2012-05-15  Bernd Schmidt  <bernds@codesourcery.com>
8712         * ira.c (find_moveable_pseudos): Skip registers whose
8713         DF_REG_EQ_USE_COUNT is nonzero.
8715 2012-05-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
8717         * doc/md.texi (fma): Define to only be applicable for single rounding.
8719 2012-05-14  Uros Bizjak  <ubizjak@gmail.com>
8721         PR target/46098
8722         * config/i386/i386.c (ix86_expand_special_args_builtin): Always
8723         generate target register for "load" class builtins.
8725         Revert:
8726         2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
8728         PR target/46098
8729         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8730         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8731         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8732         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8733         (<sse>_movu<ssemodesuffix>): New expander.
8734         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8735         (avx_movdqu<avxmodesuffix>): New expander.
8736         (*sse2_movdqu): Rename from sse2_movdqu.
8737         (sse2_movdqu): New expander.
8739 2012-05-14  Marc Glisse  <marc.glisse@inria.fr>
8741         PR target/52607
8742         * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
8743         (canonicalize_perm): ... new function.
8744         (expand_vec_perm_2vperm2f128_vshuf): New function.
8745         (ix86_expand_vec_perm_const_1): Call it.
8747 2012-05-14  Andrew Pinski  <apinski@cavium.com>
8748             H.J. Lu  <hongjiu.lu@intel.com>
8749             Jakub Jelinek  <jakub@redhat.com>
8751         PR target/53315
8752         * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
8753         (xbegin): Updated.
8755 2012-05-14  Jakub Jelinek  <jakub@redhat.com>
8757         * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
8758         lineno 1 the same as lineno 0 before first start file directive.
8759         (optimize_macinfo_range): Likewise.
8761         * dwarf2out.c (have_macinfo): Define.
8762         (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
8763         attribute, don't force empty compilation unit and don't emit any
8764         .debug_macinfo/.debug_macro section if macinfo_table is empty.
8766 2012-05-14  Georg-Johann Lay  <avr@gjlay.de>
8768         PR target/53344
8769         * config/avr/avr.c (avr_const_address_lo16): Remove.
8770         (avr_assemble_integer):  Print ".byte lo8(x)",
8771         ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
8772         .warning if 3-byte address is assembled.
8773         * doc/extend.texi (AVR Named Address Spaces): Document that
8774         binutils 2.23 is needed to assemble 3-byte addresses.
8776 2012-05-14  Richard Guenther  <rguenther@suse.de>
8778         * tree-vect-data-refs.c (vect_setup_realignment): Remove
8779         call to mark_symbols_for_renaming.
8780         (vect_permute_load_chain): Likewise.
8781         * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
8782         instead of calling mark_symbols_for_renaming.
8783         * tree-vect-stmts.c (read_vector_array): Remove call to
8784         mark_symbols_for_renaming.
8785         (write_vector_array): Likewise.
8786         (vectorizable_call): Likewise.
8787         (vectorizable_store): Likewise.
8788         (vectorizable_load): Likewise.
8789         * matrix-reorg.c (transform_allocation_sites): Likewise.
8790         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
8791         (create_expression_by_pieces): Likewise.
8793 2012-05-14  Richard Guenther  <rguenther@suse.de>
8795         * gimplify.c (gimple_regimplify_operands): Only mark the LHS
8796         of statements for renaming.
8797         (force_gimple_operand_1): Likewise, consistently for both
8798         calls to force_gimple_operand and force_gimple_operand_gsi.
8800 2012-05-14  Richard Guenther  <rguenther@suse.de>
8802         * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
8803         * omp-low.c (expand_omp_taskreg): Properly conditionalize call
8804         to update_ssa.
8805         (expand_omp_for): Likewise.
8806         (expand_omp_for_generic): Adjust conditional add to referenced vars.
8807         Use make_rename_temp for temporaries that should be rewritten into
8808         SSA form.
8809         (expand_omp_for_static_nochunk): Likewise.
8810         (expand_omp_atomic_pipeline): Likewise.
8812 2012-05-14  Richard Guenther  <rguenther@suse.de>
8814         PR tree-optimization/53331
8815         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
8816         strided loads.
8817         * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
8819 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8821         PR 53063
8822         * doc/options.texi: (LangEnabledBy): Document it.
8823         * optc-gen.awk: Handle LangEnabledBy.
8824         * opth-gen.awk: Generate declaration for lang-specific functions.
8825         * opt-read.awk: Record lang numbers.
8826         * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
8827         (lang_sanitized_name): New.
8829 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
8831         * attribs.c (decl_attributes): Avoid emitting a warning if
8832         ATTR_FLAG_BUILT_IN.
8833         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
8834         codes.  Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
8835         * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define.  Use it to
8836         define a string "1".
8837         (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
8838         * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
8839         BUILT_IN_STRCPY): Use it for these functions.
8840         * postreload.c (reload_combine): Deal with SETs inside
8841         CALL_INSN_FUNCTION_USAGE.
8842         * caller-save.c (setup_save_areas, save_call_clobbered_regs):
8843         Look for REG_RETURNED notes and use a cheap restore if possible.
8844         * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
8845         (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
8846         * ira-build.c (ira_create_allocno, create_cap_allocno,
8847         propagate_allocno_info, propagate_some_info_from_allocno,
8848         copy_info_to_removed_store_destination, ira_flattening): Handle it.
8849         * ira-lives.c (pseudo_regno_single_word_and_live_p,
8850         find_call_crossed_cheap_reg): New static functions.
8851         (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
8852         and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible.  Also make
8853         a REG_RETURNED note in that case.
8854         * ira.c (setup_reg_renumber): Change assert to allow cases where
8855         allocnos only cross calls for which they are cheap to restore.
8856         * ira-costs.c (ira_tune_allocno_costs): Compare
8857         ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
8858         than 0.
8859         * reg-notes.def (REG_RETURNED): New note.
8860         * cse.c (cse_insn): Likewise.
8861         * sched-deps.c (sched_analyze_insn): Likewise.
8862         * expr.c (init_block_move_fn): Set a "fn spec" attribute.
8863         * calls.c (decl_return_flags): New static function.
8864         (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
8865         functions that return one of their arguments.
8866         * regcprop.c (struct kill_set_value_data): New.
8867         (kill_set_value): Interpret data as a pointer to such a struct.
8868         Do nothing if the caller wants the register to be ignored.
8869         (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
8871 2012-05-14  Richard Guenther  <rguenther@suse.de>
8873         PR tree-optimization/53340
8874         * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
8876 2012-05-14  Richard Guenther  <rguenther@suse.de>
8878         * gimplify.c (gimplify_expr): Remove odd code.
8880 2012-05-14  Eric Botcazou  <ebotcazou@adacore.com>
8882         * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
8883         into a PLUS_EXPR byte offset.
8885         * tree-ssa-pre.c (can_value_number_call): Delete.
8886         (compute_avail): Skip all statements with side effects.
8887         <GIMPLE_CALL>: Skip calls to internal functions.
8889 2012-05-13  Steven Bosscher  <steven@gcc.gnu.org>
8891         * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
8893 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8895         * common.opt (Wtype-limits): Use EnabledBy.
8897 2012-05-13  Uros Bizjak  <ubizjak@gmail.com>
8899         * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
8900         (pushtf splitter): Ditto.
8901         (movtf): Ditto.
8902         (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
8903         (<code>tf2): Enable for TARGET_SSE.
8904         (*absnegtf2_sse): Ditto.
8905         (copysign<mode>3): Enable TFmode for TARGET_SSE.
8906         (copysign<mode>3_const): Ditto.
8907         (copysign<mode>3_var): Ditto.
8908         * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
8909         (*andnottf3): Ditto.  Use V4SFmode for !TARGET_SSE2.
8910         (*<code>tf3): Ditto.
8911         * config/i386/i386.c (struct builtin_description bdesc_args)
8912         <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
8913         <IX86_BUILTIN_COPYSIGNQ>: Ditto.
8914         (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
8915         Emit a normal call if SSE isn't available.
8917 2012-05-13  Uros Bizjak  <ubizjak@gmail.com>
8919         * config/i386/sse.md (<sse>_andnot<mode>3): Handle
8920         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
8921         (<code><mode>3): Ditto.
8922         (*andnot<mode>3): Ditto.
8923         (*andnottf3): Ditto.
8924         (*<code><mode>3): Ditto.
8925         (<code>tf3): Ditto.
8927 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8929         * optc-gen.awk: Error instead of warning for conflicting help.
8931 2012-05-12  Jason Merrill  <jason@redhat.com>
8933         PR debug/53235
8934         * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
8935         comdat types.
8937 2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>
8939         * function.c (requires_stack_frame_p): If the function can throw
8940         non-call exceptions, return true if the insn can throw internally.
8942 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
8944         * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
8946 2012-05-12  Uros Bizjak  <ubizjak@gmail.com>
8948         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
8949         ORDERED and UNORDERED conditions.
8951 2012-05-11  Richard Guenther  <rguenther@suse.de>
8953         * tree-flow.h (referenced_var_check_and_insert): Remove.
8954         (find_new_referenced_vars): Likewise.
8955         * tree-dfa.c (referenced_var_check_and_insert): Make static.
8956         (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
8957         * tree-inline.c (copy_bb): Use find_referenced_vars_in
8958         instead of find_new_referenced_vars.
8959         * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
8961 2012-05-11  Richard Guenther  <rguenther@suse.de>
8963         * tree-pass.h (pass_rest_of_compilation,
8964         pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
8965         Remove.
8966         * passes.c (pass_all_optimizations, pass_postreload,
8967         pass_all_early_optimizations): Make static.
8968         (pass_rest_of_compilation): Likewise.  Make it an RTL_PASS.
8969         * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
8970         * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
8971         (delete_tree_ssa): Do not call fini_phinodes.
8972         * tree-flow.h (init_phinodes, fini_phinodes): Remove.
8974 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8976         PR 53063
8977         * doc/options.texi (EnabledBy): Document
8978         * opts.c: Include opts.h and options.h before tm.h.
8979         (finish_options): Do not handle some sub-options here...
8980         (common_handle_option): ... instead call common_handle_option_auto
8981         here.
8982         * optc-gen.awk: Handle EnabledBy.
8983         * opth-gen.awk: Declare common_handle_option_auto.
8984         * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
8985         (Wmaybe-uninitialized): Likewise.
8986         (Wunused-but-set-variable): Likewise.
8987         (Wunused-function): Likewise.
8988         (Wunused-label): Likewise.
8989         (Wunused-value): Likewise.
8990         (Wunused-variable): Likewise.
8991         * opt-read.awk: Create opt_numbers array.
8993 2012-05-11  Richard Guenther  <rguenther@suse.de>
8995         PR tree-optimization/53295
8996         * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
8997         strides.
8998         * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
8999         strides when analyzing data-references in a loop context.
9000         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
9001         non-constant strides for now.
9002         (vect_enhance_data_refs_alignment): Ignore data references
9003         that are strided loads.
9004         (vect_analyze_data_ref_access): Handle non-constant strides.
9005         (vect_check_strided_load): Verify the data-reference is a load.
9006         (vect_analyze_data_refs): Restructure to make strided load
9007         support not dependent on gather support.
9008         * tree-vect-stmts.c (vectorizable_load): Avoid useless work
9009         when doing strided or gather loads.
9010         * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
9011         integer_zerop to compare stride with zero.
9013 2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
9015         * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
9017 2012-05-11  Jan Hubicka  <jh@suse.cz>
9019         PR bootstrap/53300
9020         * varpool.c (varpool_assemble_decl): Also output constat pool entries
9021         that output_constant_pool missed.
9023 2012-05-11  Mingjie Xing  <mingjie.xing@gmail.com>
9025         * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
9026         MULTILIB_EXTRA_OPTS.
9028 2012-05-11  Uros Bizjak  <ubizjak@gmail.com>
9030         PR target/53291
9031         * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
9033 2012-05-11  Uros Bizjak  <ubizjak@gmail.com>
9035         * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
9036         optimization for TARGET_AVX.
9037         (*movti_internal_sse): Ditto.
9038         (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
9039         (*movdi_internal): Ditto.
9040         (*movsi_internal): Ditto.
9041         (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
9042         (*movdf_internal_rex64): Ditto.
9043         (*movfd_internal): Ditto.
9044         (*movsf_internal): Ditto.
9045         * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
9047 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
9049         * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
9050         reference as size attribute.
9052 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
9053             Tristan Gingold  <gingold@adacore.com>
9055         * doc/md.texi (Standard Names): Document probe_stack_address.
9056         * explow.c (emit_stack_probe): Handle probe_stack_address.
9057         * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
9058         (UNSPECV_PROBE_STACK_RANGE): Likewise.
9059         (probe_stack_address): New insn.
9060         (probe_stack_range): Likewise.
9061         * config/ia64/ia64.c: Include common/common-target.h.
9062         (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
9063         checking is enabled.
9064         (ia64_emit_probe_stack_range): New function.
9065         (output_probe_stack_range): Likewise.
9066         (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
9067         builtin stack checking is enabled.
9068         (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
9069         and UNSPECV_PROBE_STACK_ADDRESS.
9070         (unknown_for_bundling_p): New predicate.
9071         (group_barrier_needed): Use important_for_bundling_p.
9072         (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
9073         (issue_nops_and_insn): Likewise.
9074         (bundling): Likewise.
9075         (final_emit_insn_group_barriers): Likewise.
9076         * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
9077         * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
9078         (STACK_CHECK_PROTECT): Likewise.
9079         * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9081 2012-05-10  Jan Hubicka  <jh@suse.cz>
9083         * ipa-inline.c (update_all_callee_keys): Remove.
9084         (inline_small_functions): Simplify priority updating.
9086 2012-05-10  Jan Hubicka  <jh@suse.cz>
9088         * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
9090 2012-05-10  Jan Hubicka  <jh@suse.cz>
9092         * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
9093         (symtab_remove_unreachable_nodes): ... this one.
9094         * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
9095         * cgraphunit.c (ipa_passes): Update.
9096         * cgraphclones.c (cgraph_materialize_all_clones): Update.
9097         * cgraph.c (cgraph_release_function_body): Only turn initial
9098         into error mark when initial was previously set.
9099         * ipa-inline.c (ipa_inline): Update.
9100         * ipa.c: Include ipa-inline.h
9101         (enqueue_cgraph_node, enqueue_varpool_node): Remove.
9102         (enqueue_node): New function.
9103         (process_references): Update.
9104         (symtab_remove_unreachable_nodes): Cleanup.
9105         * passes.c (execute_todo, execute_one_pass): Update.
9107 2012-05-10  Vladimir Makarov  <vmakarov@redhat.com>
9109         PR rtl-optimization/53125
9110         * ira.c (ira): Call find_moveable_pseudos and
9111         move_unallocated_pseudos if only ira_conflicts_p is true.
9113 2012-05-10  Uros Bizjak  <ubizjak@gmail.com>
9115         * config/i386/i386.md (*movoi_internal_avx): Handle
9116         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
9117         (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
9118         (*movti_internal_sse): Ditto.
9119         (*movtf_internal): Ditto.
9120         * config/i386/sse.md (ssePSmode): New mode attribute.
9121         (*move<mode>_internal): Use ssePSmode.
9122         (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
9123         (*<sse2>_movdqu<avxsizesuffix>): Ditto.
9124         * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
9125         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
9127 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
9129         * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
9130         DECL_ORIGINAL_TYPE if it is present.
9132 2012-05-10  Nick Clifton  <nickc@redhat.com>
9134         PR target/53120
9135         * config/m32c/bitops.md (bset_qi): Change operand 2 from having
9136         a "0" constraint to being a (match_dup 0).
9138 2012-05-10  Richard Guenther  <rguenther@suse.de>
9140         * stor-layout.c (byte_from_pos): Amend comment.
9142 2012-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9144         * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
9145         Document requirement to call in constructors.
9147         * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
9149 2012-05-10  Richard Guenther  <rguenther@suse.de>
9151         * tree.h (TYPE_IS_SIZETYPE): Remove.
9152         * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
9153         (extract_muldiv_1): Likewise.
9154         * gimple.c (gtc_visit): Likewise.
9155         (gimple_types_compatible_p): Likewise.
9156         (iterative_hash_canonical_type): Likewise.
9157         (gimple_canonical_types_compatible_p): Likewise.
9158         * gimplify.c (gimplify_one_sizepos): Likewise.
9159         * print-tree.c (print_node): Likewise.
9160         * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
9162 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
9164         PR target/52908
9165         * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
9166         xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
9167         (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
9168         instead of xop_mulv2div2di3_low.
9169         (xop_p<macs>dql): Fix vec_select selector.
9170         (xop_p<macs>dqh): Ditto.
9171         (xop_mulv2div2di3_low): Remove insn_and_split pattern.
9172         (xop_mulv2div2di3_high): Ditto.
9174 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9176         PR c++/53289
9177         * diagnostic.h (diagnostic_context): Add last_location.
9178         * diagnostic.c (diagnostic_initialize): Initialize it.
9179         (diagnostic_show_locus): Use it.
9181 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9183         * doc/extend.texi (Function Attributes): Point xref to section
9184         about Pragmas.
9186 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
9188         * config/i386/i386.c (*movdf_internal_rex64): Remove
9189         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
9190         Calculate "mode" attribute according to
9191         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
9192         (*movdf_internal): Ditto.
9194 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
9196         PR target/44141
9197         * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
9198         128 bit vectors specially for TARGET_AVX.  Emit sse2_movupd and
9199         sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
9200         or when optimizing for size.
9201         * config/i386/sse.md (*mov<mode>_internal): Remove
9202         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
9203         Calculate "mode" attribute according to optimize_function_for_size_p
9204         and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
9205         (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
9206         depending on the mode of the instruction.  Calculate "mode" attribute
9207         according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
9208         and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
9209         (*<sse2>_movdqu<avxsizesuffix>): Ditto.
9211 2012-05-09  Georg-Johann Lay  <avr@gjlay.de>
9213         PR target/53256
9214         * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
9215         * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
9216         * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
9217         * config/avr/avr.c (avr_asm_declare_function_name): Remove.
9218         (expand_prologue): Move initialization of cfun->machine->is_naked,
9219         is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
9220         (avr_set_current_function): ...this new static function.
9221         (TARGET_SET_CURRENT_FUNCTION): New define.
9222         (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
9223         checking attributes of current_function_decl.
9224         (avr_regs_to_save): Ditto.
9225         (signal_function_p): Rename to avr_signal_function_p.
9226         (interrupt_function_p): Rename to avr_interrupt_function_p.
9228         * doc/extend.texi (Function Attributes): Better explanation of
9229         'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
9230         alphabetical order.
9232 2012-05-09  Michael Matz  <matz@suse.de>
9234         PR tree-optimization/53185
9235         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
9236         peeling when we see strided loads.
9238 2012-05-09  Matthias Klose  <doko@ubuntu.com>
9240         * gcc-ar.c (main): Don't check for execute bits for the plugin.
9242 2012-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9244         * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
9245         Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
9246         USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
9247         * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
9248         (USE_LOAD_POST_INCREMENT): Define.
9249         (USE_LOAD_PRE_INCREMENT): Define.
9250         (USE_LOAD_POST_DECREMENT): Define.
9251         (USE_LOAD_PRE_DECREMENT): Define.
9252         (USE_STORE_PRE_DECREMENT): Define.
9253         (USE_STORE_PRE_INCREMENT): Define.
9254         (USE_STORE_POST_DECREMENT): Define.
9255         (USE_STORE_POST_INCREMENT): Define.
9256         (arm_auto_incmodes): Add enumeration.
9257         * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
9258         * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
9260 2012-05-09  Jakub Jelinek  <jakub@redhat.com>
9262         PR tree-optimization/53226
9263         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
9264         prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
9265         before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
9266         doesn't need to be revisited, look for earliest stmt with
9267         !gimple_plf (stmt, GF_PLF_1) if something changed.
9269 2012-05-09  Terry Guo  <terry.guo@arm.com>
9271         * genmultilib: Update copyright dates.
9272         * doc/fragments.texi: Ditto.
9274 2012-05-09  Terry Guo  <terry.guo@arm.com>
9276         * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
9277         * genmultilib (MULTILIB_REQUIRED): New.
9278         * doc/fragments.texi: Document the MULTILIB_REQUIRED.
9280 2012-05-09  Richard Guenther  <rguenther@suse.de>
9282         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
9283         (vect_do_peeling_for_loop_bound): Likewise.
9284         (vect_do_peeling_for_alignment): Likewise.
9285         * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
9286         (vect_do_peeling_for_loop_bound): Get check_profitability and
9287         threshold as parameters.
9288         (vect_do_peeling_for_alignment): Likewise.
9289         (vect_loop_versioning): Likewise.
9290         * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
9291         and threshold here.  Control where to put the check here.
9293 2012-05-09  Richard Sandiford  <rdsandiford@googlemail.com>
9295         PR middle-end/53249
9296         * dwarf2out.h (get_address_mode): Move declaration to...
9297         * rtl.h: ...here.
9298         * dwarf2out.c (get_address_mode): Move definition to...
9299         * rtlanal.c: ...here.
9300         * var-tracking.c (get_address_mode): Delete.
9301         * combine.c (find_split_point): Use get_address_mode instead of
9302         targetm.addr_space.address_mode.
9303         * cselib.c (cselib_record_sets): Likewise.
9304         * dse.c (canon_address, record_store): Likewise.
9305         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
9306         * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
9307         (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
9308         (expand_expr_real_1): Likewise.
9309         * ifcvt.c (noce_try_cmove_arith): Likewise.
9310         * optabs.c (maybe_legitimize_operand_same_code): Likewise.
9311         * reload.c (find_reloads): Likewise.
9312         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9313         * sel-sched-dump.c (debug_mem_addr_value): Likewise.
9315 2012-05-09  Maciej W. Rozycki  <macro@codesourcery.com>
9317         * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
9318         information from the instruction produced.
9320 2012-05-09  Richard Guenther  <rguenther@suse.de>
9322         * stor-layout.c (bit_from_pos): Document.
9323         (byte_from_pos): Likewise.  Optimize.
9324         (pos_from_bit): Likewise.
9325         (normalize_offset): Use pos_from_bit instead of replicating it.
9327 2012-05-09  Alan Modra  <amodra@gmail.com>
9329         PR target/53271
9330         * config/rs6000/rs6000.c (gen_frame_set): New function.
9331         (gen_frame_load, gen_frame_store): New functions.
9332         (rs6000_savres_rtx): Use the above.
9333         (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
9334         Correct mode used for CR2 in save/restore_world patterns.
9335         Don't emit instructions for eh_return frame unwind reg info.
9337 2012-05-08  Jan Hubicka  <jh@suse.cz>
9339         * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
9340         with VALUE_EXPR.
9341         * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
9342         are removable.
9343         * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
9344         need to wrapup.
9345         (compile_file): Do not output variables.
9346         * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
9347         output it.
9348         * langhooks.c: Include timevar.h
9349         (write_global_declarations): Finalize compilation unit after wrapup;
9350         set timevars correctly.
9351         * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
9352         not to be added to varpool.
9353         * varpool.c (varpool_assemble_decl): Sanity check that we are called
9354         only on cases where it makes sense; skip constant pool and value expr
9355         vars.
9357 2012-05-08  David S. Miller  <davem@davemloft.net>
9359         * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
9360         * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
9361         * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
9363 2012-05-08  Richard Sandiford  <rdsandiford@googlemail.com>
9365         PR rtl-optimization/53278
9366         * lower-subreg.c (decompose_multiword_subregs): Remove left-over
9367         speed_p code from earlier patch.
9369 2012-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
9371         PR target/51244
9372         * config/sh/sh.md (*branch_true, *branch_false): New insns.
9374 2012-05-08  Teresa Johnson  <tejohnson@google.com>
9376         * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
9377         * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
9379 2012-05-08  Jan Hubicka  <jh@suse.cz>
9381         * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
9382         (cgraph_create_node_1): Rename to ...
9383         (cgraph_create_empty_node): ... this one; export.
9384         (cgraph_create_node): Update.
9385         (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
9386         (cgraph_create_edge_including_clones): Likewise.
9387         (cgraph_find_replacement_node): Likewise.
9388         (cgraph_clone_edge): Likewise.
9389         (cgraph_clone_node): Likewise.
9390         (clone_function_name): Likewise.
9391         (cgraph_create_virtual_clone): Likewise.
9392         (cgraph_remove_node_and_inline_clones): Likewise.
9393         (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
9394         * cgraph.h: Reorder declarations so they match file of origin.
9395         (cgraph_create_empty_node): Declare.
9396         * cgraphunit.c (update_call_expr): Move to cgraphclones.c
9397         (cgraph_copy_node_for_versioning): Likewise.
9398         (cgraph_function_versioning): Likewise.
9399         (cgraph_materialize_clone): Likewise.
9400         (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
9401         (cgraph_materialize_all_clones): Likewise.
9402         * cgraphclones.c: New file.
9403         * Makefile.in: Update for cgraphclones.
9405 2012-05-08  Uros Bizjak  <ubizjak@gmail.com>
9407         PR target/53176
9408         * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
9409         (ix86_rtx_costs): Handle SET.
9411 2012-05-08  Michael Matz  <matz@suse.de>
9413         * basic-block.h (struct rtl_bb_info): Remove visited member and
9414         move head_ member to ...
9415         (struct basic_block_def.basic_block_il_dependent): ... the new
9416         member x, replacing but containing old member rtl.
9417         (enum bb_flags): New BB_VISITED flag.
9418         (BB_HEADER, BB_FOOTER): New macros.
9420         * jump.c (mark_all_labels): Adjust.
9421         * cfgcleanup.c (try_optimize_cfg): Adjust.
9422         * cfglayout.c (record_effective_endpoints): Adjust.
9423         (relink_block_chain): Ditto (and don't fiddle with visited).
9424         (fixup_reorder_chain): Adjust.
9425         (fixup_fallthru_exit_predecessor): Ditto.
9426         (cfg_layout_duplicate_bb): Ditto.
9427         * combine.c (update_cfg_for_uncondjump): Adjust.
9428         * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
9429         (bb_visited_trace): New accessor.
9430         (mark_bb_visited): Move in front.
9431         (rotate_loop): Use bb_visited_trace.
9432         (find_traces_1_round): Ditto.
9433         (emit_barrier_after): Ditto.
9434         (copy_bb): Ditto, and initialize visited on resize.
9435         (reorder_basic_blocks): Initize visited member.
9436         (duplicate_computed_gotos): Clear bb flags at start, use
9437         BB_VISITED flags.
9439         * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
9440         (rtl_verify_flow_info_1): Ditto.
9441         (cfg_layout_split_block): Ditto.
9442         (cfg_layout_delete_block): Ditto.
9443         (cfg_layout_merge_blocks): Ditto.
9444         (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
9446 2012-05-08  Hans-Peter Nilsson  <hp@axis.com>
9448         PR target/53272
9449         * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
9450         when a constant source operand matches an "I" constraint, the "no
9451         CC0 change" applies to a register-destination only, not a
9452         strict_low_part-destination.
9454 2012-05-08  Richard Guenther  <rguenther@suse.de>
9456         * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
9457         to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
9459 2012-05-08  Georg-Johann Lay  <avr@gjlay.de>
9461         * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
9463         * doc/avr-mmcu.texi: New auto-generated file.
9464         * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
9465         to document all valid -mmcu= arguments.
9467         * config/avr/avr.h (arch_info_s): New struct definition.
9468         * config/avr/avr-devices.c (avr_texinfo): New variable.
9469         * config/avr/gen-avr-mmcu-texi.c: New file.
9470         * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
9472 2012-05-08  Dehao Chen  <dehao@google.com>
9474         * predict.c (find_qualified_ssa_name): New.
9475         (find_ssa_name_in_expr): New.
9476         (find_ssa_name_in_assign_stmt): New.
9477         (is_comparison_with_loop_invariant_p): New.
9478         (is_bound_expr_similar): New.
9479         (predict_iv_comparison): New.
9480         (predict_loops): Add heuristic for loop-nested branches that compare an
9481         induction variable to a loop bound variable.
9482         * predict.def (PRED_LOOP_IV_COMPARE): New macro.
9484 2012-05-08  Uros Bizjak  <ubizjak@gmail.com>
9486         * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
9487         TARGET_BDVER2 defines where appropriate.
9489 2012-05-07  Eric Botcazou  <ebotcazou@adacore.com>
9491         * configure.ac (PLUGIN_LD): Rename into...
9492         (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
9493         * config.in: Regenerate.
9494         * configure: Likewise.
9495         * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
9497 2012-05-07  Eric Botcazou  <ebotcazou@adacore.com>
9499         * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
9500         computation using the precision of the index type.
9501         * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
9502         (fold_array_ctor_reference): Do index computations in the index type.
9504 2012-05-07  Georg-Johann Lay  <avr@gjlay.de>
9506         * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
9507         down to plus_constant.
9508         (expand_epilogue): Ditto.
9510 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
9512         * postreload.c (reload_cse_regs): Make static.
9513         * reload.h (reload_cse_regs): Remove prototype.
9515 2012-05-07  Richard Henderson  <rth@redhat.com>
9517         * config/alpha/alpha.md (clear_cache): New pattern.
9519 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
9521         PR middle-end/53245
9522         * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
9523         is folded to a type boundary value, verify that the resulting case
9524         label is still a care range.
9526 2012-05-07  Uros Bizjak  <ubizjak@gmail.com>
9528         * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
9529         only for TARGET_GENERIC, when not optimizing for size.
9530         (*ffs<mode>_1): Ditto.
9532 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
9534         * tree-cfg.c (verify_gimple_switch): Tighten checks.
9536 2012-05-07  Jakub Jelinek  <jakub@redhat.com>
9538         PR tree-optimization/53239
9539         * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
9540         of DECL_BY_REFERENCE RESULT_DECL to nonnull.
9542 2012-05-07  Richard Guenther  <rguenther@suse.de>
9544         PR tree-optimization/53195
9545         * tree-inline.c (setup_one_parameter): Properly add referenced
9546         vars from the parameters new known value.
9548 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
9550         * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
9551         (sched_branch_type): Remove.
9552         (m68k_sched_md_init_global): Don't allocate it.
9553         (m68k_sched_md_finish_global): Don't free it.
9554         * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
9555         * config/m68k/m68k.md: Set the type of insns using
9556         m68k_sched_branch_type to bcc directly.
9558 2012-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9560         * config/sol2.c (solaris_override_options): New function.
9561         * config/sol2-protos.h (solaris_override_options): Declare.
9562         * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
9564 2012-05-07  Richard Guenther  <rguenther@suse.de>
9566         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
9567         whether we failed to compute data dependences.
9568         (loop_prefetch_arrays): Fail if we failed.
9570 2012-05-07  Uros Bizjak  <ubizjak@gmail.com>
9571             Paolo Bonzini  <bonzini@gnu.org>
9573         * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
9574         Emit bsf when optimizing for size.
9575         (*ffs<mode>_1): Ditto.
9577 2012-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
9579         PR target/53250
9580         * config/sh/sh.c (sh_rtx_costs): Handle SET.
9582 2012-05-06  Uros Bizjak  <ubizjak@gmail.com>
9584         PR target/53227
9585         * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
9586         (bswapdi2): Split from bswap<mode>2.  Use nonnimediate_operand
9587         predicate for operand 1.  Force operand 1 to register for TARGET_BSWAP.
9588         (bswapsi2): Ditto.
9589         (*bswapdi2_doubleword): New insn pattern.
9590         (*bswap<mode>2): Rename from *bswap<mode>2_1.
9592 2012-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
9594         * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
9595         (mips_set_reg_reg_cost): Likewise.
9596         (mips_rtx_costs): Handle SET.
9598 2012-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
9600         * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
9601         (compute_costs): Likewise for the zero extension.  Use set_rtx_cost
9602         to compute the cost of moves.  Set the mode of the target register.
9604 2012-05-05  Richard Sandiford  <rdsandiford@googlemail.com>
9606         * rtl.h (plus_constant, plus_constant_mode): Merge into a single
9607         plus_constant function.
9608         * explow.c (plus_constant, plus_constant_mode): Likewise.  Assert
9609         that the mode is sensible.
9610         (use_anchored_address, round_push, allocate_dynamic_stack_space)
9611         (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
9612         plus_constant.
9614         * alias.c (canon_rtx): Likewise.
9615         (init_alias_analysis): Likewise.
9616         * builtins.c (expand_builtin_return_addr)
9617         (expand_builtin_setjmp_setup, expand_builtin_longjmp)
9618         (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
9619         (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
9620         (expand_builtin_stpcpy): Likewise.
9621         * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
9622         (compute_argument_addresses, internal_arg_pointer_based_exp)
9623         (expand_call, emit_library_call_value_1): Likewise.
9624         * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
9625         * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
9626         * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
9627         * cse.c (insert_const_anchor, find_reg_offset_for_const)
9628         (use_related_value, fold_rtx): Likewise.
9629         * cselib.c (cselib_subst_to_values): Likewise.
9630         * dse.c (record_store, check_mem_read_rtx): Likewise.
9631         * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
9632         * emit-rtl.c (adjust_address_1): Likewise.
9633         * except.c (sjlj_emit_function_enter)
9634         (expand_builtin_extract_return_addr)
9635         (expand_builtin_frob_return_addr): Likewise.
9636         * expmed.c (expand_divmod): Likewise.
9637         * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
9638         (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
9639         (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
9640         * function.c (assign_stack_local_1)
9641         (instantiate_virtual_regs_in_rtx): Likewise.
9642         * optabs.c (prepare_cmp_insn): Likewise.
9643         * recog.c (offsettable_address_addr_space_p): Likewise.
9644         * reload.c (find_reloads_address, form_sum)
9645         (find_reloads_subreg_address): Likewise.
9646         * reload1.c (init_reload, eliminate_regs_1)
9647         (eliminate_regs_in_insn): Likewise.
9648         * simplify-rtx.c (simplify_unary_operation_1)
9649         (simplify_binary_operation_1, simplify_plus_minus): Likewise.
9650         * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
9651         (vt_add_function_parameter): Likewise.
9653         * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
9654         * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
9655         * config/alpha/alpha.c (alpha_legitimize_address_1)
9656         (get_unaligned_address, alpha_expand_unaligned_load)
9657         (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
9658         (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
9659         (alpha_expand_builtin_establish_vms_condition_handler)
9660         (alpha_setup_incoming_varargs, emit_frame_store_1)
9661         (alpha_expand_prologue, alpha_expand_epilogue)
9662         (alpha_use_linkage): Likewise.
9663         * config/alpha/alpha.md: Likewise.
9665         * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
9666         (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
9667         (thumb_legitimize_address, arm_gen_load_multiple_1)
9668         (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
9669         (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
9670         (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
9671         (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
9672         (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
9673         (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
9674         (thumb_expand_movmemqi, arm_set_return_address)
9675         (thumb_set_return_address): Likewise.
9676         * config/arm/arm.md: Likewise.
9678         * config/avr/avr.c (avr_incoming_return_addr_rtx)
9679         (avr_prologue_setup_frame, expand_epilogue)
9680         (avr_const_address_lo16): Likewise.
9682         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
9683         * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
9684         (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
9685         (bfin_output_mi_thunk): Likewise.
9687         * config/c6x/c6x.c (c6x_initialize_trampoline)
9688         (c6x_output_mi_thunk): Likewise.
9690         * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
9691         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
9693         * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
9694         (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
9695         (cris_emit_movem_store, cris_trampoline_init): Likewise.
9696         * config/cris/cris.md: Likewise.
9698         * config/darwin.c (machopic_indirect_data_reference)
9699         (machopic_legitimize_pic_address): Likewise.
9701         * config/epiphany/epiphany.c (epiphany_emit_save_restore)
9702         (epiphany_expand_prologue, epiphany_expand_epilogue)
9703         (epiphany_trampoline_init): Likewise.
9704         * config/epiphany/epiphany.md: Likewise.
9706         * config/fr30/fr30.c (fr30_move_double): Likewise.
9708         * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
9709         (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
9710         (frv_index_memory, unspec_got_name, frv_find_base_term)
9711         (frv_output_dwarf_dtprel): Likewise.
9713         * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
9714         (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
9716         * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
9717         * config/i386/i386.c (setup_incoming_varargs_64)
9718         (setup_incoming_varargs_ms_64, choose_baseaddr)
9719         (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
9720         (ix86_emit_probe_stack_range, ix86_expand_prologue)
9721         (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
9722         (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
9723         (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
9724         (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
9725         (x86_output_mi_thunk): Likewise.
9726         * config/i386/i386.md: Likewise.
9728         * config/ia64/ia64.c (ia64_expand_load_address)
9729         (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
9730         (do_spill, ia64_trampoline_init): Likewise.
9732         * config/iq2000/iq2000.c (iq2000_va_start)
9733         (iq2000_emit_frame_related_store, iq2000_expand_prologue)
9734         (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
9735         (iq2000_print_operand, iq2000_legitimize_address): Likewise.
9737         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
9739         * config/m32c/m32c.c (m32c_return_addr_rtx)
9740         (m32c_expand_insv): Likewise.
9742         * config/m32r/m32r.c (m32r_setup_incoming_varargs)
9743         (m32r_legitimize_pic_address, m32r_print_operand)
9744         (m32r_print_operand_address): Likewise.
9746         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
9747         * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
9748         (EH_RETURN_HANDLER_RTX): Likewise.
9749         * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
9750         (m68k_expand_epilogue, legitimize_pic_address)
9751         (m68k_output_mi_thunk): Likewise.
9752         * config/m68k/m68k.md: Likewise.
9754         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
9755         (mcore_expand_epilog): Likewise.
9756         * config/mcore/mcore.md: Likewise.
9758         * config/mep/mep.c (mep_allocate_initial_value)
9759         (mep_expand_prologue, mep_expand_epilogue): Likewise.
9761         * config/microblaze/microblaze.c (double_memory_operand)
9762         (microblaze_block_move_loop): Likewise.
9764         * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
9765         (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
9766         (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
9767         (mips_expand_prologue, mips_epilogue_set_cfa)
9768         (mips_expand_epilogue): Likewise.
9769         * config/mips/mips.md: Likewise.
9771         * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
9772         (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
9774         * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
9775         (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
9777         * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
9778         (EH_RETURN_HANDLER_RTX): Likewise.
9779         * config/moxie/moxie.c (moxie_static_chain): Likewise.
9781         * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
9782         (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
9783         (pa_return_addr_rtx, hppa_builtin_saveregs)
9784         (pa_trampoline_init): Likewise.
9785         * config/pa/pa.md: Likewise.
9787         * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
9789         * config/picochip/picochip.c (picochip_static_chain): Likewise.
9791         * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
9792         * config/rs6000/rs6000.c (rs6000_legitimize_address)
9793         (setup_incoming_varargs, print_operand, rs6000_return_addr)
9794         (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
9795         (rs6000_emit_epilogue)
9796         (rs6000_machopic_legitimize_pic_address): Likewise.
9798         * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
9800         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
9801         (DYNAMIC_CHAIN_ADDRESS): Likewise.
9802         * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
9803         (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
9804         (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
9805         (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
9806         (s390_emit_epilogue, s390_function_profiler): Likewise.
9807         * config/s390/s390.md: Likewise.
9809         * config/score/score.c (score_add_offset, score_prologue): Likewise.
9811         * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
9812         (sh_output_mi_thunk): Likewise.
9813         * config/sh/sh.md: Likewise.
9815         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
9816         (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
9817         * config/sparc/sparc.c (sparc_legitimize_pic_address)
9818         (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
9819         (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
9820         (emit_and_preserve): Likewise.
9821         * config/sparc/sparc.md: Likewise.
9823         * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
9824         * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
9825         (spu_setup_incoming_varargs, ea_load_store_inline)
9826         (spu_expand_load): Likewise.
9828         * config/stormy16/stormy16.c (xstormy16_expand_prologue)
9829         (combine_bnp): Likewise.
9831         * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
9832         * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
9833         (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
9835         * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
9836         * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
9837         (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
9839         * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
9840         * config/v850/v850.md: Likewise.
9842         * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
9843         (EH_RETURN_HANDLER_RTX): Likewise.
9844         * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
9845         * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
9846         (print_operand_address, vax_trampoline_init): Likewise.
9848         * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
9849         (xtensa_function_value_regno_p): Likewise.
9851 2012-05-04  Andrew Pinski  <apinski@cavium.com>
9853         * expr.c (get_def_for_expr_class): New function.
9854         (convert_tree_comp_to_rtx): New function.
9855         (expand_cond_expr_using_cmove): New function.
9856         (expand_expr_real_2 <case COND_EXPR>): Call
9857         expand_cond_expr_using_cmove first and return if it succeeds.
9858         Remove the check for HAVE_conditional_move since we should have
9859         already converted it to a conditional move.
9860         * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
9861         modes of DImode for 32bits and TImode.
9863 2012-05-04  Steven Bosscher  <steven@gcc.gnu.org>
9865         PR other/29442
9866         * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
9867         (print_md_ptr_loc, print_c_condition): Use them.
9868         * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
9869         * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
9870         attr_file, dfa_file, latency_file): New global variables.
9871         (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
9872         write_upcase, write_indent, write_length_unit_log, write_test_expr,
9873         write_attr_get, write_insn_cases, write_eligible_delay,
9874         write_const_num_delay_slots): Accept FILE pointer and toss it around.
9875         Update all callers.
9876         (write_header, open_outfile, handle_arg): New funcions.
9877         (make_automaton_attrs): Write prototypes as extern to the output
9878         files.
9879         (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
9880         names from the command line.  Open the output files and write out
9881         internal functions for DFA functions to dfa_file_name, insn latency
9882         functions to latency_file_name, and everything else to attr_file.
9883         * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
9884         (BACKEND): Build libbackend first.
9885         (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
9886         (.PRECIOUS): Likewise.
9887         (insn-dfatab.o): New rule.
9888         (insn-latencytab.o): New rule.
9889         (simple_rtl_generated_c): Do not include insn-attrtab.c.
9890         (s-attrtab): New rule.
9892 2012-05-04  Steven Bosscher  <steven@gcc.gnu.org>
9894         * rtl.def (ATTR_FLAG): Remove probability indicating flags.
9895         * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
9896         ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
9897         * reorg.c (get_jump_flags): Do not set the removed flags.
9899         * doc/md.texi (attr_flag): Update for abovementioned changes.
9901 2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
9903         PR target/53228
9904         * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
9905         (TARGET_CMOV): Rename from TARGET_CMOVE.
9906         (TARGET_CMOVE): New define.
9907         * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
9908         Do not set TARGET_CMOVE here.
9910 2012-05-04  Dodji Seketeli  <dodji@redhat.com>
9912         Enable -Wunused-local-typedefs when -Wall or -Wunused is on
9913         * opts.c (finish_options): Activate -Wunused-local-typedefs if
9914         -Wunused is activated.
9915         * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
9917 2012-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9919         * config/s390/s390.md (*movmem_short, *clrmem_short)
9920         (*cmpmem_short): Move the mode check from the insn condition to
9921         the match_scratch.
9923 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
9925         PR tree-optimization/52633
9926         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
9927         vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
9928         (vect_recog_over_widening_pattern): Remove handling of code that was
9929         already detected as over-widening pattern.  Remove special handling
9930         of "unsigned" cases.  Instead, support general case of conversion
9931         of the shift result to another type.
9933 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
9935         * tree-vect-patterns.c (vect_single_imm_use): New function.
9936         (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
9937         (vect_recog_over_widening_pattern): Likewise.
9938         (vect_recog_widen_shift_pattern): Likewise.
9940 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
9942         * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
9943         (vect_handle_widen_op_by_const): Use it instead of open-coding test.
9944         (vect_recog_widen_mult_pattern): Likewise.
9945         (vect_operation_fits_smaller_type): Likewise.
9946         (vect_recog_over_widening_pattern): Likewise.
9947         (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
9949 2012-05-04  Richard Guenther  <rguenther@suse.de>
9951         PR lto/50602
9952         * lto-wrapper.c (merge_and_complain): Complain about mismatches
9953         of -freg-struct-return and -fpcc-struct-return.
9954         (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
9955         from the input file options and ignore those from the link
9956         command line.
9958 2012-05-04  Richard Guenther  <rguenther@suse.de>
9960         PR tree-optimization/53168
9961         * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
9962         memory reads when the result is a constant we can pun.
9964 2012-05-04  Richard Guenther  <rguenther@suse.de>
9966         * common.opt (flto-report): Do not mark as Optimization.
9968 2012-05-04  Eric Botcazou  <ebotcazou@adacore.com>
9970         PR target/48496
9971         * recog.c (constrain_operands): If extra constraints are present, also
9972         accept pseudo-registers with equivalent memory locations during reload.
9974 2012-05-04  Olivier Hainque  <hainque@adacore.com>
9976         * collect2.c (may_unlink_output_file): New global.
9977         (maybe_unlink): Honor it.
9978         * collect2.h: Add extern for it.
9979         * tlink.c (do_tlink): Set it to true if the link succeeded.
9981 2012-05-04  Olivier Hainque  <hainque@adacore.com>
9983         * gcc.c (eval_spec_function): Finalize/restore the current string
9984         obstack state as part of the context push/pop operations.
9986 2012-05-04  Bin Cheng  <bin.cheng@arm.com>
9988         PR rtl-optimization/52804
9989         * reload1.c (reload_reg_reaches_end_p): Check whether successor
9990         reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
9991         of current one with type RELOAD_FOR_INPADDR_ADDRESS.
9992         Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
9993         RELOAD_FOR_OUTADDR_ADDRESS.
9995 2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9997         PR c++/24985
9998         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
9999         for macro expansion.
10001 2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10003         * flags.h (flag_permissive): Do not declare.
10004         * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
10005         option specially.
10006         * toplev.c (flag_permissive): Do not define.
10007         * c-tree.h (system_header_p): Delete unused.
10009 2012-05-03  David S. Miller  <davem@davemloft.net>
10011         PR target/52684
10012         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
10013         MEM directly into a libcall, mark it's MEM_EXPR as addressable.
10014         (sparc_emit_float_lib_cmp): Likewise.
10016 2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
10018         PR target/53199
10019         * config/rs6000/rs6000.md (bswapdi splitters): If
10020         -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
10021         default) is used, generate an alternate sequence that does not
10022         depend on using indexed addressing.
10024 2012-05-03  Jason Merrill  <jason@redhat.com>
10026         * gengtype.c (write_types): Fix warning message.
10027         (write_local): Likewise.
10029 2012-05-02  Jason Merrill  <jason@redhat.com>
10031         * dwarf2out.c (struct external_ref, build_local_stub): New.
10032         (hash_external_ref, external_ref_eq, lookup_external_ref): New.
10033         (optimize_external_refs, optimize_external_refs_1): New.
10034         (change_AT_die_ref): New.
10035         (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
10036         (build_abbrev_table): Take the external refs hashtable.
10037         (output_comp_unit): Get it from optimize_external_refs and pass it in.
10039 2012-05-03  Jan Hubicka  <jh@suse.cz>
10041         PR middle-end/53093
10042         * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
10044 2012-05-03  Jan Hubicka  <jh@suse.cz>
10046         PR middle-end/53106
10047         * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
10049 2012-05-03  Jason Merrill  <jason@redhat.com>
10051         * dwarf2out.c (die_struct): Add comdat_type_p flag.  Use it instead of
10052         use_debug_types to discriminate the die_id union.
10053         (print_die, assign_symbol_names, copy_decls_walk): Likewise.
10054         (build_abbrev_table, output_die): Likewise.
10055         (prune_unused_types_walk_attribs): Likewise.
10056         (generate_type_signature, copy_declaration_context): Set it.
10057         (remove_child_or_replace_with_skeleton): Set it.
10058         (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
10059         check use_debug_types.
10060         (dwarf2out_finish): Do break_out_includes after .debug_types.
10062 2012-05-03  Jason Merrill  <jason@redhat.com>
10064         * dwarf2out.c (modified_type_die): Use scope_die_for.
10065         (gen_type_die_with_usage, dwarf2out_finish): Likewise.
10066         (uses_local_type_r, uses_local_type): New.
10067         (scope_die_for): Keep a type that uses a local type in local scope.
10068         Use get_context_die for namespace and type scope.
10070 2012-05-03  Jason Merrill  <jason@redhat.com>
10072         * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
10073         pc thunk.
10074         * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
10075         (dwarf2out_finish): Likewise.
10077 2012-05-03  Martin Jambor  <mjambor@suse.cz>
10079         * builtins.c (get_object_alignment_1): Return whether we can determine
10080         the alignment or conservatively assume byte alignment.  Return the
10081         alignment by reference.  Use get_pointer_alignment_1 for dereference
10082         alignment.
10083         (get_pointer_alignment_1): Return whether we can determine the
10084         alignment or conservatively assume byte alignment.  Return the
10085         alignment by reference.  Use get_ptr_info_alignment to get SSA name
10086         alignment.
10087         (get_object_alignment): Update call to get_object_alignment_1.
10088         (get_object_or_type_alignment): Likewise, fall back to type alignment
10089         only when it returned false.
10090         (get_pointer_alignment): Update call to get_pointer_alignment_1.
10091         * fold-const.c (get_pointer_modulus_and_residue): Update call to
10092         get_object_alignment_1.
10093         * ipa-prop.c (ipa_modify_call_arguments): Update call to
10094         get_pointer_alignment_1.
10095         * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
10096         of MEM_REF or TARGET_MEM_REF only when it returns false.
10097         * tree-ssa-ccp.c (get_value_from_alignment): Update call to
10098         get_object_alignment_1.
10099         (ccp_finalize): Use set_ptr_info_alignment.
10100         * tree.h (get_object_alignment_1): Update declaration.
10101         (get_pointer_alignment_1): Likewise.
10102         * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
10103         (dump_gimple_stmt): Likewise.
10104         * tree-flow.h (ptr_info_def): Updated comments of fields align and
10105         misalign.
10106         (get_ptr_info_alignment): Declared.
10107         (mark_ptr_info_alignment_unknown): Likewise.
10108         (set_ptr_info_alignment): Likewise.
10109         (adjust_ptr_info_misalignment): Likewise.
10110         * tree-ssa-address.c (copy_ref_info): Use new access functions to get
10111         and set alignment of SSA names.
10112         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
10113         mark_ptr_info_alignment_unknown.
10114         * tree-ssanames.c (get_ptr_info_alignment): New function.
10115         (mark_ptr_info_alignment_unknown): Likewise.
10116         (set_ptr_info_alignment): Likewise.
10117         (adjust_ptr_info_misalignment): Likewise.
10118         (get_ptr_info): Call mark_ptr_info_alignment_unknown.
10119         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
10120         Likewise.
10121         (bump_vector_ptr): Likewise.
10122         * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
10123         (vectorizable_store): Likewise.
10124         (vectorizable_load): Likewise.
10126 2012-05-03  Michael Matz  <matz@suse.de>
10128         * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
10129         in front of basic_block_def.
10130         (struct basic_block_def): Make il.gimple the full struct, not a
10131         pointer.
10132         (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
10134         * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
10135         * gimple-iterator.c (gimple_stmt_iterator): Don't special case
10136         NULL il.gimple, which can't happen anymore.
10137         * gimple.h (bb_seq): il.gimple can't be NULL.
10138         (bb_seq_add): Ditto.
10139         (set_bb_seq): Adjust.
10140         (gsi_start_bb, gsi_last_bb): Tidy.
10141         * lto-streamer-in.c (make_new_block): Don't zero members that
10142         are zeroed already, don't allocate a gimple_bb_info.
10143         * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
10144         (remove_bb): Clear all il.gimple members.
10145         (gimple_verify_flow_info): Adjust for flat il.gimple.
10146         * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
10148         * coretypes.h (const_gimple_seq): Remove typedef.
10149         * gimple.h (gimple_seq_first): Take gimple_seq.
10150         (gimple_seq_first_stmt): Ditto.
10151         (gimple_seq_last): Ditto.
10152         (gimple_seq_last_stmt): Ditto.
10153         (gimple_seq_empty_p): Ditto.
10155 2012-05-03  Richard Guenther  <rguenther@suse.de>
10157         * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
10158         operations.
10159         (prune_clobbered_mems): Do it here.  Do not uselessly sort expressions.
10160         (compute_avail): Do not add possibly trapping operations to
10161         EXP_GEN if they might not be executed in the block.
10163 2012-05-03  Uros Bizjak  <ubizjak@gmail.com>
10165         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
10167 2012-05-03  Steven Bosscher  <steven@gcc.gnu.org>
10169         * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
10170         information as early as possible.  Update dominance info instead of
10171         discarding it.
10173 2012-05-03  Richard Guenther  <rguenther@suse.de>
10175         * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
10176         (union_contains_value): Remove.
10177         (vro_valid_in_sets): Likewise.
10178         (op_valid_in_sets): New function.
10179         (valid_in_sets): Use op_valid_in_sets.
10180         (insert_into_preds_of_block): Move dumping ...
10181         (do_regular_insertion): ... here.
10182         (do_partial_partial_insertion): ... and here.  Dump that
10183         we've found a partial partial redundancy.
10184         (insert): Dump the current insert iteration.
10186 2012-05-03  Jakub Jelinek  <jakub@redhat.com>
10188         PR plugins/53126
10189         * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
10190         append program name to it and pass that as first argument
10191         to make_relative_prefix.  Always pass standard_libexec_prefix
10192         as last argument to make_relative_prefix.  If
10193         make_relative_prefix returns NULL, fall back to
10194         standard_libexec_prefix.
10196         PR debug/53174
10197         * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
10198         removed.
10200         PR target/53187
10201         * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
10202         mode, return that mode.
10204         PR target/53194
10205         * config/i386/i386-c.c (ix86_target_macros_internal): Don't
10206         define __ATOMIC_HLE_* macros here.
10207         (ix86_target_macros): But here, using cpp_define_formatted.
10209 2012-05-03  Richard Guenther  <rguenther@suse.de>
10211         PR tree-optimization/53144
10212         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
10213         Rename to ...
10214         (vn_reference_lookup_or_insert_for_pieces): ... this.  Properly deal
10215         with SSA name values.
10216         (vn_reference_lookup_3): Adjust callers.
10218 2012-05-03  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
10220         * config/i386/driver-i386.c (host_detect_local_cpu): Reset
10221         has_fma4 for AMD processors with both fma3 and fma4 support.
10223 2012-05-03  Kirill Yukhin  <kirill.yukhin@intel.com>
10225         PR target/53201
10226         * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
10227         "-mno-hle".
10229 2012-05-03  Michael Matz  <matz@suse.de>
10231         PR bootstrap/53197
10232         * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
10233         (dse_enter_block): Properly iterate the whole sequence even
10234         if the last statement was removed.
10236 2012-05-02  Steven Bosscher  <steven@gcc.gnu.org>
10238         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
10239         unset flag_jump_tables.
10240         * stmt.c (expand_case): Remove special flag_pic case conditional
10241         on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
10243 2012-05-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
10245         * common/config/s390/s390-common.c (s390_option_optimization_table):
10246         Enable -fsched-pressure using -fsched-pressure-algorithm=model by
10247         default when optimizing.
10249 2012-05-02  Martin Jambor  <mjambor@suse.cz>
10251         PR lto/52605
10252         * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
10253         of a variable when the contect is a function.
10255 2012-05-02  Michael Matz  <matz@suse.de>
10257         * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
10258         * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
10259         (const_gimple_seq_node): Remove.
10260         (gimple_seq_node): Typedef as gimple.
10261         (struct gimple_statement_base): Add next and prev members,
10262         adjust all WORD markers in using structs.
10263         (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
10264         (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
10265         gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
10266         gimple are the same.
10267         (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
10268         gimple_seq, adjust.
10269         (gimple_init_singleton): New function.
10270         (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
10271         (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
10272         (gsi_stmt): Adjust.
10273         (gsi_stmt_ptr): Remove.
10274         (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
10276         * gimple-iterator.c (update_bb_for_stmts): Take last parameter
10277         again, adjust for above changes.
10278         (update_call_edge_frequencies): Adjust for above changes.
10279         (gsi_insert_seq_nodes_before): Rewrite for new data structure.
10280         (gsi_insert_seq_nodes_after): Ditto.
10281         (gsi_split_seq_after): Ditto.
10282         (gsi_set_stmt): Ditto.
10283         (gsi_split_seq_before): Ditto.
10284         (gsi_remove): Ditto.
10285         (gsi_insert_seq_before_without_update): Don't free sequence.
10286         (gsi_insert_seq_after_without_update): Ditto.
10287         (gsi_replace): Assert some more invariants.
10288         (gsi_insert_before_without_update, gsi_insert_after_without_update):
10289         Tidy.
10290         (gsi_for_stmt): Don't search for stmt.
10291         (gsi_insert_on_edge_immediate): Tidy.
10293         * gimple.c (gimple_alloc_k): Remove "sequences".
10294         (gimple_seq_cache): Remove.
10295         (gimple_alloc_stat): Make stmt a singleton sequence.
10296         (gimple_seq_alloc, gimple_seq_free): Remove.
10297         (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
10298         (gimple_copy): Ditto.
10299         * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
10300         create iterator from correct sequence.
10301         * tree-phinodes.c (make_phi_node): Make stmt a singleton.
10303 2012-05-02  Michael Matz  <matz@suse.de>
10305         * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
10306         gimple_seq.
10307         (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
10308         sequence, lazily allocate it.
10309         (bb_seq_addr): New function.
10310         (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
10311         (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
10312         (gsi_none): New function.
10313         (gsi_start_bb): Adjust.
10314         (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
10315         (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
10316         (gsi_last_bb): Adjust.
10317         (gsi_seq): Adjust.
10318         * tree-flow-inline.h (phi_nodes_ptr): New function.
10320         * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
10321         datastructure and interface change.
10322         (gsi_insert_seq_before_without_update): Ditto.
10323         (gsi_insert_seq_nodes_after): Ditto.
10324         (gsi_insert_seq_after_without_update): Ditto.
10325         (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
10326         (gsi_split_seq_before): Ditto.
10327         (gsi_start_phis): Adjust.
10328         * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
10329         (vect_transform_loop): Ditto.
10330         * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
10331         gimple_seq_copy): Don't use gimple_seq_alloc.
10332         * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
10333         (gimplify_seq_add_seq): Ditto.
10334         * lto-streamer-in.c (make_new_block): Ditto.
10335         * tree-cfg.c (create_bb): Ditto.
10336         * tree-sra.c (initialize_parameter_reductions): Ditto.
10338 2012-05-02  Michael Matz  <matz@suse.de>
10340         * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
10341         gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
10342         gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
10343         set_bb_seq): Move down to after gimple_statement_d definition.
10345 2012-05-02  Michael Matz  <matz@suse.de>
10347         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
10348         gsi_replace_with_seq, instead of inserting itself.
10349         * gimple-iterator.c (gsi_replace_with_seq): New function.
10350         * tree-ssa-forwprop.c (forward_propagate_comparison): Take
10351         iterator instead of statement, advance it.
10352         (ssa_forward_propagate_and_combine): Adjust call to above.
10354 2012-05-02  Michael Matz  <matz@suse.de>
10356         * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
10357         gimple_seq_alloc.
10358         * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
10359         * tree-nested.c (walk_gimple_omp_for): Ditto.
10360         * trans-mem.c (lower_transaction): Ditto.
10361         * tree-eh.c (do_return_redirection): Ditto.
10362         (do_goto_redirection): Ditto.
10363         (lower_try_finally_switch): Ditto.
10364         * gimplify.c (gimplify_stmt): Ditto.
10365         (gimplify_scan_omp_clauses): Ditto.
10366         (gimplify_omp_for): Ditto.
10367         (gimplify_function_tree): Ditto.
10368         * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
10369         * tree-mudflap.c (mf_decl_cache_locals): Ditto.
10370         (mf_build_check_statement_for): Ditto.
10371         (mx_register_decls): Ditto.
10372         * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
10373         and don't use itertors to append.
10374         (insert_stmts): Ditto.
10375         (insert_out_of_ssa_copy): Ditto.
10376         (insert_out_of_ssa_copy_on_edge): Ditto.
10378 2012-05-02  Michael Matz  <matz@suse.de>
10380         * gimple.h (gimple_bind_body_ptr): New function.
10381         (gimple_bind_body): Use it.
10382         (gimple_catch_handler): Use gimple_catch_handler_ptr.
10383         (gimple_eh_filter_failure_ptr): New function.
10384         (gimple_eh_filter_failure): Use it.
10385         (gimple_eh_else_n_body_ptr): New function.
10386         (gimple_eh_else_n_body): Use it.
10387         (gimple_eh_else_e_body_ptr): New function.
10388         (gimple_eh_else_e_body): Use it.
10389         (gimple_try_eval_ptr): New function.
10390         (gimple_try_eval): Use it.
10391         (gimple_try_cleanup_ptr): New function.
10392         (gimple_try_cleanup): Use it.
10393         (gimple_wce_cleanup_ptr): New function.
10394         (gimple_wce_cleanup): Use it.
10395         (gimple_omp_body_ptr): New function.
10396         (gimple_omp_body): Use it.
10397         (gimple_omp_for_pre_body_ptr): New function.
10398         (gimple_omp_for_pre_body): Use it.
10399         (gimple_transaction_body_ptr): New function.
10400         (gimple_transaction_body): Use it.
10401         (gsi_split_seq_before): Adjust to return nothing and take pointer
10402         to sequence.
10403         (gsi_set_stmt): Declare.
10404         (gsi_replace_with_seq): Declare.
10405         (walk_gimple_seq_mod): Declare.
10406         * function.h (struct function <gimple_body>): Use typedef gimple_seq.
10408         * gimple-iterator.c (gsi_set_stmt): New function.
10409         (gsi_split_seq_before): Return new sequence via pointer argument.
10410         (gsi_replace): Use gsi_set_stmt.
10412         * tree-ssa-loop-im.c (move_computations_stmt): First remove
10413         then insert stmt.
10414         * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
10415         * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
10416         return new stmt.
10417         (reserve_phi_args_for_new_edge): Change call to above,
10418         use gsi_set_stmt.
10420         * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
10421         (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
10422         iterators.  Adjust call to lower_omp.
10423         (lower_lastprivate_clauses): Adjust call to lower_omp.
10424         (lower_reduction_clauses): Ditto.
10425         (expand_omp_taskreg): Nullify non-cfg body of child_fn.
10426         (lower_omp_sections): Don't explicitely count sequence length,
10427         nullify lowered bodies earlier, ensure stmts are part of only
10428         one sequence, adjust call to lower_omp.
10429         (lower_omp_single): Ensure stmts are part of only one sequence,
10430         adjust call to lower_omp.
10431         (lower_omp_master): Ditto.
10432         (lower_omp_ordered): Ditto.
10433         (lower_omp_critical): Ditto.
10434         (lower_omp_for): Ditto.
10435         (lower_omp_taskreg): Ditto, tidy.
10436         (lower_omp_1): Adjust calls to lower_omp.
10437         (execute_lower_omp): Ditto.
10438         (lower_omp): Adjust to take pointer to sequence.
10439         (diagnose_sb_2): Use walk_gimple_seq_mod.
10440         (diagnose_omp_structured_block_errors): Ditto and set possibly
10441         changed function body.
10442         * gimple-low.c (lower_function_body): Set function body after
10443         it stabilizes.
10444         (lower_sequence): Adjust to take pointer to sequence.
10445         (lower_omp_directive): Ensure stmt isn't put twice into the
10446         sequence, adjust call to lower_sequence.
10447         (lower_stmt): Adjust calls to lower_sequence.
10448         (lower_gimple_bind): Ditto.
10449         (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
10450         * tree-nested.c (walk_body): Take pointer to sequence, use
10451         walk_gimple_seq_mod.
10452         (walk_function): Adjust call to walk_body, set possibly changed body.
10453         (walk_gimple_omp_for): Adjust calls to walk_body.
10454         (convert_nonlocal_omp_clauses): Ditto.
10455         (convert_nonlocal_reference_stmt): Ditto.
10456         (convert_local_omp_clauses): Ditto.
10457         (convert_local_reference_stmt): Ditto.
10458         (convert_tramp_reference_stmt): Ditto.
10459         (convert_gimple_call): Ditto.
10460         (convert_nl_goto_reference): Use local iterator copy.
10461         * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
10462         but taking pointer to sequence, ensure gsi_start is called with
10463         callers lvalue.
10464         (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
10465         asserting that the sequence head didn't change.
10466         (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
10467         walk_gimple_seq_mod.
10468         * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
10469         (execute_lower_tm): Ditto, and set possibly changed body.
10470         * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
10471         call gsi_start with that lvalue.
10472         (replace_goto_queue_stmt_list): Ditto.
10473         (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
10474         (replace_goto_queue): Ditto.
10475         (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
10476         (lower_try_finally_onedest): Ditto.
10477         (lower_try_finally_copy): Ditto.
10478         (lower_try_finally_switch): Ditto.
10479         (lower_try_finally): Ditto.
10480         (lower_eh_filter): Ditto.
10481         (lower_eh_must_not_throw): Ditto.
10482         (lower_cleanup): Ditto.
10483         (lower_eh_constructs_2): Ditto.
10484         (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
10485         (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
10486         set possibly changed body.
10487         (optimize_double_finally): Call gsi_start with lvalue.
10489         * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
10490         (gimple_split_block): Ditto.
10491         (gimple_merge_blocks): Use gsi_start_phis.
10492         (move_stmt_r): Use walk_gimple_seq_mod.
10493         * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
10494         * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
10495         (rebuild_cgraph_edges): Ditto.
10496         (cgraph_rebuild_references): Ditto.
10497         * ipa-prop.c (ipa_analyze_params_uses): Ditto.
10498         * tree-inline.c (copy_phis_for_bb): Ditto.
10499         * tree-ssa-dce.c: Ditto.
10501         * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
10503 2012-05-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10504             Andi Kleen <ak@linux.intel.com>
10506         * coretypes.h (MEMMODEL_MASK): New.
10507         * builtins.c (get_memmodel): Add val. Call target.memmodel_check
10508         and return new variable.
10509         (expand_builtin_atomic_exchange):  Mask memmodel values.
10510         (expand_builtin_atomic_compare_exchange): Ditto.
10511         (expand_builtin_atomic_load): Ditto.
10512         (expand_builtin_atomic_store): Ditto.
10513         (expand_builtin_atomic_clear): Ditto.
10514         * doc/extend.texi: Mention port-dependent memory model flags.
10515         * config/i386/cpuid.h (bit_HLE): New.
10516         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
10517         HLE support.
10518         * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
10519         * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
10520         (ix86_target_string)<-mhle>: New.
10521         (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
10522         * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
10523         (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
10524         (ix86_option_override_internal) <PTA_HLE>: New switch, set it
10525         enabled for generic, generic64 and core-avx2.
10526         (ix86_print_operand): Generate HLE lock prefixes.
10527         (ix86_memmodel_check): New.
10528         (TARGET_MEMMODEL_CHECK): Ditto.
10529         * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
10530         (IX86_HLE_ACQUIRE): Ditto.
10531         (IX86_HLE_RELEASE): Ditto.
10532         * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
10533         * config/i386/i386.opt (mhle): Ditto.
10534         * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
10535         success model to instruction emitter.
10536         (atomic_fetch_add<mode>): Ditto.
10537         (atomic_exchange<mode>): Ditto.
10538         (atomic_add<mode>): Ditto.
10539         (atomic_sub<mode>): Ditto.
10540         (atomic_<code><mode>): Ditto.
10541         (*atomic_compare_and_swap_doubledi_pic): Ditto.
10542         (atomic_compare_and_swap_single<mode>): Define and use argument
10543         for success model.
10544         (atomic_compare_and_swap_double<mode>): Ditto.
10545         * configure.ac: Check if assembler support HLE prefixes.
10546         * configure: Regenerate.
10547         * config.in: Ditto.
10549 2012-05-02  Steven Bosscher  <steven@gcc.gnu.org>
10551         PR middle-end/53153
10552         * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
10553         split out from ...
10554         (gimplify_switch_expr): ... here.
10555         * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
10556         * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
10557         to clean up case labels with values outside the index type range.
10558         (simplify_gimple_switch): Call it if something changed.
10559         Remove strange and unnecessary assert.
10561 2012-05-02  Richard Guenther  <rguenther@suse.de>
10563         * fold-const.c (div_if_zero_remainder): sizetypes no longer
10564         sign-extend.
10565         (int_const_binop_1): New worker for int_const_binop with
10566         overflowable parameter.  Pass it through to force_fit_type_double.
10567         (int_const_binop): Wrap around int_const_binop_1 with overflowable
10568         equal to one.
10569         (size_binop_loc): Call int_const_binop_1 with overflowable equal
10570         to minus one, forcing overflow detection for even unsigned types.
10571         (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
10572         (fold_binary_loc): Call try_move_mult_to_index with signed offset.
10573         * stor-layout.c (initialize_sizetypes): sizetypes no longer
10574         sign-extend.
10575         (layout_type): For zero-sized arrays ignore overflow on the
10576         size calculations.
10577         * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
10578         (bit_value_binop_1): Likewise.
10579         * tree.c (double_int_to_tree): Likewise.
10580         (double_int_fits_to_tree_p): Likewise.
10581         (force_fit_type_double): Likewise.
10582         (host_integerp): Likewise.
10583         (int_fits_type_p): Likewise.
10584         * varasm.c (output_constructor_regular_field): Sign-extend the
10585         field-offset to cater for negative offsets produced by the Ada
10586         frontend.
10587         * omp-low.c (extract_omp_for_data): Convert the loop step to
10588         signed for pointer adjustments.
10590 2012-05-02  Richard Guenther  <rguenther@suse.de>
10592         * tree.c (valid_constant_size_p): New function.
10593         * tree.h (valid_constant_size_p): Declare.
10594         * cfgexpand.c (expand_one_var): Adjust check for too large
10595         variables by using valid_constant_size_p.
10596         * varasm.c (assemble_variable): Likewise.
10598         * c-decl.c (grokdeclarator): Properly check for sizes that
10599         cover more than half of the address-space.
10601 2012-05-02  Jakub Jelinek  <jakub@redhat.com>
10603         PR tree-optimization/53163
10604         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
10605         return value from compute_all_dependences.
10607         PR rtl-optimization/53160
10608         * ree.c (combine_reaching_defs): Handle the case where cand->insn
10609         has been modified by ree pass already.
10611 2012-05-01  Ian Lance Taylor  <iant@google.com>
10613         PR c/37303
10614         * c-decl.c (build_compound_literal): Make the decl readonly if it
10615         an array of a readonly type.
10616         * gimplify.c (gimplify_compound_literal_expr): Add fallback
10617         parameter.  Change all callers.  If the decl is not addressable
10618         and is not an l-value, make it readonly.
10620 2012-05-01  Bernd Schmidt  <bernds@codesourcery.com>
10622         * ira.c (allocated_reg_info_size): New static variable.
10623         (expand_reg_info): Manage it. Call
10624         setup_preferred_alternate_classes_for_new_pseudos.
10625         (ira): Don't do it here.  Remove local allocated_reg_info_size,
10626         set the global before calling find_moveable_pseudos.
10627         (find_moveable_pseudos): Call expand_reg_info rather than
10628         resize_reg_info.
10630 2012-05-01  Richard Henderson  <rth@redhat.com>
10632         * common.opt (fsync-libcalls): New.
10633         * doc/invoke.texi: Document it.
10634         * optabs.c (init_sync_libfuncs): Honor it.
10636 2012-05-01  Kenneth Zadeck  <zadeck@naturalbridge.com>
10637             Richard Sandiford  <r.sandiford@uk.ibm.com>
10639         PR rtl-optimization/52543
10640         * Makefile.in (lower-subreg.o, target-globals.o): Depend on
10641         lower-subreg.h.
10642         * lower-subreg.h: New file.
10643         * target-globals.h (this_target_lower_subreg): Declare.
10644         (target_globals): Add lower_subreg;
10645         (restore_target_globals): Restore this_target_lower_subreg.
10646         * target-globals.c: Include it.
10647         (default_target_globals): Add default_target_lower_subreg.
10648         (save_target_globals): Initialize target_lower_subreg.
10649         * rtl.h (init_lower_subreg): Added declaration.
10650         * toplev.c (backend_init_target): Call initializer for lower-subreg
10651         pass.
10652         * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
10653         (default_target_lower_subreg): New variable.
10654         (this_target_lower_subreg): Likewise.
10655         (twice_word_mode, choices): New macros.
10656         (shift_cost, compute_splitting_shift, compute_costs)
10657         (init_lower_subreg): New functions.
10658         (resolve_simple_move): Add speed_p argument.  Check choices.
10659         (find_pseudo_copy): Don't check the mode size here.
10660         (resolve_simple_move): Assert the mode size.
10661         (find_decomposable_shift_zext): Add speed_p argument and return
10662         a bool.  Check choices.
10663         (resolve_shift_zext): Add comment.
10664         (dump_shift_choices, dump_choices): New functions.
10665         (decompose_multiword_subregs): Dump list of profitable
10666         transformations.  Add code to skip non profitable transformations.
10667         Update calls to simple_move and find_decomposable_shift_zext.
10669 2012-05-01  Ian Bolton  <ian.bolton@arm.com>
10670             Sameera Deshpande  <sameera.deshpande@arm.com>
10671             Greta Yorsh  <greta.yorsh@arm.com>
10673         * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
10674         (thumb1_unexpanded_epilogue): ...this.
10675         * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
10676         (thumb1_unexpanded_epilogue): ...this.
10677         * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
10678         (thumb1_unexpanded_epilogue): ...this.
10680 2012-05-01  Richard Earnshaw  <rearnsha@arm.com>
10682         * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
10683         comparing enumeration values.  Update comments.
10685 2012-05-01  Alan Modra  <amodra@gmail.com>
10687         PR target/53038
10688         * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
10689         load_cr_save, add_crlr_cfa_restore): New functions.
10690         (rs6000_restore_saved_cr): Rename to..
10691         (restore_saved_cr): ..this.  Add cfa_restore notes for cr.
10692         (rs6000_emit_epilogue): Use new functions.  Adjust condition
10693         for emitting lr and cr cfa_restore.  Emit cfa_restores for fp
10694         regs when using out-of-line restore only when shrink wrapping.
10696 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
10698         PR middle-end/53136
10699         * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
10700         calls to cgraph_node_name in xstrdup.
10701         (ipa_make_edge_direct_to_target): Ditto.
10702         * cgraph.c (dump_cgraph_node): Ditto.
10703         * tree-sra.c (convert_callers_for_node): Ditto.
10704         * lto-symtab.c (lto_cgraph_replace_node): Ditto.
10705         * ipa-cp.c (perhaps_add_new_callers): Ditto.
10706         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
10707         (cgraph_materialize_all_clones): Ditto.
10708         * ipa-inline.c (report_inline_failed_reason): Ditto.
10709         (want_early_inline_function_p): Ditto.
10710         (edge_badness): Ditto.
10711         (update_edge_key): Ditto.
10712         (flatten_function): Ditto.
10713         (ipa_inline): Ditto.
10714         (inline_always_inline_functions): Ditto.
10715         (early_inline_small_functions): Ditto.
10717 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
10719         PR target/53141
10720         * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
10721         constraints 0 and 1.
10723 012-04-30  Jan Hubicka  <jh@suse.cz>
10725         * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
10726         (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
10727         (cgraph_add_to_same_comdat_group): Remove.
10728         (cgraph_add_asm_node): Move to cgraphunit.c.
10729         (cgraph_make_decl_local): Move to symtab.c
10730         (cgraph_make_node_local_1): Update.
10731         (cgraph_can_remove_if_no_direct_calls_and): Update.
10732         (used_from_object_file_p): Update.
10733         (resolution_used_from_other_file_p): Move to symtab.c
10734         (cgraph_used_from_object_file_p): move to symtab.c
10735         (verify_cgraph_node): Verify same comdat groups.
10736         * cgraph.h (cgraph_asm_node): Rename to ...
10737         (asm_node): ... this one.
10738         (cgraph_asm_nodes): Rename to ...
10739         (asm_nodes): ... this one.
10740         (symtab_add_to_same_comdat_group): New function.
10741         (symtab_dissolve_same_comdat_group_list): New function.
10742         (symtab_used_from_object_file_p): Declare.
10743         (symtab_make_decl_local): Declare.
10744         (cgraph_add_to_same_comdat_group): Remove.
10745         (cgraph_add_asm_node): Remove.
10746         (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
10747         Remove.
10748         (cgraph_finalize_compilation_unit): Rename to ...
10749         (finalize_compilation_unit): ... this one.
10750         (cgraph_optimize): Rename to ....
10751         (compile): ... this one.
10752         (add_asm_node): Declare.
10753         (fixup_same_cpp_alias_visibility): Declare.
10754         (cgraph_make_decl_local): Remove.
10755         (varpool_assemble_pending_decls): Rename to ...
10756         (varpool_output_variables): ... this one.
10757         (varpool_remove_unreferenced_decls): Remove.
10758         * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
10759         (preserve_function_body_p): Make static.
10760         * toplev.c (compile_file): Update comments; update.
10761         * cgraphunit.c: Update comments.
10762         (cgraph_expand_all_functions): Rename to ...
10763         (expand_all_functions): ... this one; update.
10764         (cgraph_mark_functions_to_output): Rename to ...
10765         (mark_functions_to_output): ... this one; cleanup.
10766         (cgraph_output_pending_asms): Remove prototype.
10767         (asm_nodes, asm_last_node): New static vars.
10768         (cgraph_process_new_functions): Update.
10769         (cgraph_reset_node): Cleanup; add comment.
10770         (cgraph_add_new_function): Update.
10771         (cgraph_output_pending_asms): Rename to ...
10772         (output_asm_statements): ... this one.
10773         (add_asm_node): New function.
10774         (fixup_same_cpp_alias_visibility): New function based on code
10775         in cgraph_analyze_function.
10776         (cgraph_analyze_function): Use it.
10777         (cgraph_order_sort): Update.
10778         (cgraph_output_in_order): Update.
10779         (cgraph_function_versioning): Update.
10780         (cgraph_optimize): Rename to ...
10781         (compile): ... this one; initialize streamer hooks here.
10782         (cgraph_finalize_compilation_unit): Rename to ...
10783         (finalize_compilation_unit): ... this one; do not initialize streamer
10784         hook here.
10785         * lto-streamer-out.c (lto_output_toplevel_asms): Update.
10786         * dwarf2out.c: Update ocmment.
10787         * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
10788         * method.c (use_thunk): Likewise.
10789         * semantics.c (maybe_add_lambda_conv_op): Likewise.
10790         * decl2.c (maybe_emit_vtables): Likewise.
10791         (cp_write_global_declarations): Use finalize_compilation_unit.
10792         * parser.c (cp_parser_asm_definition): Use add_asm_node.
10793         * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
10794         * c-decl.c (c_write_global_declarations): Use
10795         finalize_compilation_unit.
10796         * langhooks.c (write_global_declarations): Update.
10797         * ipa.c (cgraph_externally_visible_p): Update.
10798         (dissolve_same_comdat_group_list): Remove.
10799         (function_and_variable_visibility): Update.
10800         * symtab.c: Inlcude lto-streamer.h and rtl.h
10801         (ld_plugin_symbol_resolution_names): New.
10802         (symtab_add_to_same_comdat_group): New.
10803         (symtab_dissolve_same_comdat_group_list): New.
10804         (resolution_used_from_other_file_p): Move here from cgraph.c
10805         (symtab_used_from_object_file_p): New.
10806         (symtab_make_decl_local): New.
10807         * passes.c (register_pass): Update comments.
10808         * c-parser.c (c_parser_asm_definition): Update.
10809         * varpool.c (varpool_analyze_node): Use
10810         fixup_same_cpp_alias_visibility.
10811         (varpool_remove_unreferenced_decls): Make static.
10812         (varpool_assemble_pending_decls): Rename to ...
10813         (varpool_output_variables): ... this one; call
10814         varpool_remove_unreferenced_decls.
10815         (varpool_used_from_object_file_p): Remove.
10817 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
10819         PR c++/51033
10820         * c-typeck.c (build_array_ref): Call
10821         convert_vector_to_pointer_for_subscript.
10822         * doc/extend.texi (Vector Extensions): Subscripting not just for C.
10824 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
10826         * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
10827         to compile-time "mode == <MODE>mode" checks.
10828         (and splitter): Ditto.
10830 2012-04-30  Richard Henderson  <rth@redhat.com>
10832         * config/arm/arm.md (UNSPEC_LL): New.
10833         * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
10834         (arm_load_exclusivedi): Use %H0.
10836 2012-04-30  Jason Merrill  <jason@redhat.com>
10838         * dwarf2out.c (comdat_symbol_id): Add const.
10839         (union die_symbol_or_type_node): Add const to die_symbol.
10840         (output_die_symbol, output_die, output_comp_unit): Adjust.
10842 2012-04-30  Andrew Stubbs  <ams@codesourcery.com>
10844         * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
10845         * config/arm/neon.md (negdi2_neon): New insn.
10846         Also add splitters for core and NEON registers.
10848 2012-04-30  Andrew Stubbs  <ams@codesourcery.com>
10850         * config/arm/arm.c (neon_valid_immediate): Allow const_int.
10851         (arm_print_operand): Add 'x' format.
10852         * config/arm/constraints.md (Dn): Allow const_int.
10853         * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
10854         Use 'x' format to print constants.
10855         * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
10856         * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
10857         is enabled.
10858         (movdi_vfp_cortexa8): Likewise.
10860 2012-04-30  Ian Bolton  <ian.bolton@arm.com>
10861             Sameera Deshpande  <sameera.deshpande@arm.com>
10862             Greta Yorsh  <greta.yorsh@arm.com>
10864         * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
10865         * config/arm/arm.c (ldm_stm_operation_p): New function.
10866         * config/arm/predicates.md (load_multiple_operation): Update predicate.
10867         (store_multiple_operation): Likewise.
10869         * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
10870         * config/arm/arm.c (ldm_stm_operation_p): New parameters.
10871         * config/arm/predicates.md (load_multiple_operation): Add arguments.
10872         (store_multiple_operation): Likewise.
10874 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
10876         * config/i386/i386.md (and<mode>3): Expand masking operations with
10877         0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
10878         (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
10880 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
10882         Add -Wvarargs option
10883         * builtins.c (fold_builtin_next_arg):  Use OPT_Wvarargs as an
10884         argument for the various warning_at calls.
10885         * docs/invoke.texi: Update the documentation.
10887 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
10889         Switch -ftrack-macro-expansion=2 on by default.
10890         * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
10891         by default.
10893         Fix va_start related location
10894         * builtins.c (fold_builtin_next_arg): Unwinds to the first
10895         location in real source code.
10897         Make conversion warnings work on NULL with -ftrack-macro-expansion
10898         * input.h (expansion_point_location_if_in_system_header): Declare
10899         new function.
10900         * input.c (expansion_point_location_if_in_system_header): Define it.
10902         Fix -Wuninitialized for -ftrack-macro-expansion
10903         * tree-ssa.c (warn_uninit): Use the spelling location of the variable
10904         declaration.  Use linemap_location_before_p for source locations.
10906         Strip "<built-in>" loc from displayed expansion context
10907         * input.c (expand_location_1): When expanding to spelling location
10908         in a context of a macro expansion, skip reserved system header
10909         locations.  Update comments.  * tree-diagnostic.c
10910         (maybe_unwind_expanded_macro_loc): Likewise.
10912         Make expand_location resolve to locus in main source file
10913         * input.c (expand_location_1): New.  Takes a parameter to choose
10914         whether to resolve the location to spelling or expansion point.
10915         Was factorized from ...
10916         (expand_location): ... here.
10917         (expand_location_to_spelling_point): New.  Implemented in terms of
10918         expand_location_1.
10919         * diagnostic.c (diagnostic_build_prefix): Use the new
10920         expand_location_to_spelling_point instead of expand_location.
10922         Fix PCH crash on GTYed pointer-to-scalar field of a struct
10923         * gengtype.c (write_types_process_field): Force second argument of
10924         the call to the PCH object hierarchy walker to be 'x'.
10926 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
10928         * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
10929         predicate to discriminate types.
10931 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10933         * doc/invoke.texi (Wmissing-format-attribute): Document as an
10934         alias of Wsuggest-attribute=format.
10935         * c-typeck.c (convert_for_assignment): Replace
10936         Wmissing-format-attribute with Wsuggest-attribute=format.
10937         (digest_init): Likewise.
10939 2012-04-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10941         * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
10942         * common.opt (Wmissing-noreturn): Alias of
10943         -Wsuggest-attribute=noreturn.
10945 2012-04-29  Hans-Peter Nilsson  <hp@axis.com>
10947         PR target/53156
10948         * config/cris/cris.md (andqu): New peephole2.
10949         (andu): Tweak head comment.
10951 2012-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
10952             Steven Bosscher  <steven@gcc.gnu.org>
10953             Maxim Kuvyrkov  <maxim@codesourcery.com>
10955         PR tree-optimization/38785
10956         * common.opt (ftree-partial-pre): New option.
10957         * doc/invoke.texi: Document it.
10958         * opts.c (default_options_table): Initialize flag_tree_partial_pre.
10959         * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
10960         benefit speed path.
10961         (execute_pre): Use flag_tree_partial_pre.
10963 2012-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10965         PR target/52999
10966         * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
10967         in constant pool.
10969 2012-04-27  Ollie Wild  <aaw@google.com>
10971         * doc/invoke.texi (Wliteral-suffix): Document new option.
10973 2012-04-27  Tom Tromey  <tromey@redhat.com>
10975         * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
10976         (dwarf_tag_name): Use get_DW_TAG_name.
10977         (dwarf_attr_name): Use get_DW_AT_name.
10978         (dwarf_form_name): Use get_DW_FORM_name.
10979         * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
10981 2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
10983         * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
10984         arguments are -1 and 0, by negating the result of the conditional.
10986 2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
10988         PR target/53138
10989         * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
10991 2012-04-27  Richard Guenther  <rguenther@suse.de>
10993         * tree-flow.h (is_hidden_global_store): Remove.
10994         * tree-ssa-sink.c (is_hidden_global_store): Likewise.
10995         * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
10996         (stmt_may_clobber_global_p): Likewise.
10997         * tree-ssa-alias.c (ref_may_alias_global_p): New function.
10998         (stmt_may_clobber_global_p): Likewise.
10999         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
11000         stmt_may_clobber_global_p.
11001         * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
11003 2012-04-27  Steven Bosscher  <steven@gcc.gnu.org>
11005         * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
11006         place.
11008         * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
11009         reorganize some fields and update comments.  Rename bit_test_uniq
11010         and bit_test_count to uniq resp. count.  Remove bit_test_bb.
11011         (collect_switch_conv_info): New function, collects info about a
11012         GIMPLE_SWITCH into a struct switch_conv_info.
11013         (check_range): Simplify to use pre-recorded info.  Fix think-o in
11014         range-branch ratio check.
11015         (check_process_case): Remove function.
11016         (check_all_empty_except_final): New function, verifies that all
11017         non-final basic blocks are empty.
11018         (process_switch): Simplify to use pre-recorded info.  Call
11019         collect_switch_conv_info to do that.  Assert that degenerate switch
11020         statements have been cleaned up.
11022 2012-04-27  Marc Glisse  <marc.glisse@inria.fr>
11024         PR middle-end/27139
11025         * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
11027 2012-04-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11029         PR c/53130
11030         * c-typeck.c (pop_init_level): Use %qD instead of %qT.
11032 2012-04-27  Tom de Vries  <tom@codesourcery.com>
11034         PR tree-optimization/51879
11035         * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
11036         * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
11037         of ...
11038         (defs_to_varying): ... here.  Don't set use_processed.
11039         (visit_reference_op_call): Handle gimple_vdef.
11040         Handle case that lhs is NULL_TREE.
11041         (visit_use): Use mark_use_processed.  Handle calls with side-effect
11042         using visit_reference_op_call.
11044 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
11046         * sched-deps.c (fixup_sched_groups): Rename to...
11047         (chain_to_prev_insn): ...this.
11048         (chain_to_prev_insn_p): New function.
11049         (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
11051 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
11053         * sched-int.h (_haifa_insn_data): Move priority_status.
11054         Add model_index.
11055         (INSN_MODEL_INDEX): New macro.
11056         * haifa-sched.c (insn_delay): New function.
11057         (sched_regno_pressure_class): Update commentary.
11058         (mark_regno_birth_or_death): Pass the liveness bitmap and
11059         pressure array as arguments, instead of using curr_reg_live and
11060         curr_reg_pressure.  Only update the pressure if the bit in the
11061         liveness set has changed.
11062         (initiate_reg_pressure_info): Always trust the live-in set for
11063         SCHED_PRESSURE_MODEL.
11064         (initiate_bb_reg_pressure_info): Update call to
11065         mark_regno_birth_or_death.
11066         (dep_list_size): Take the list as argument.
11067         (calculate_reg_deaths): New function, extracted from...
11068         (setup_insn_reg_pressure_info): ...here.
11069         (MODEL_BAR): New macro.
11070         (model_pressure_data, model_insn_info, model_pressure_limit)
11071         (model_pressure_group): New structures.
11072         (model_schedule, model_worklist, model_insns, model_num_insns)
11073         (model_curr_point, model_before_pressure, model_next_priority):
11074         New variables.
11075         (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
11076         (MODEL_INSN_INFO, MODEL_INSN): New macros.
11077         (model_index, model_update_limit_points_in_group): New functions.
11078         (model_update_limit_points, model_last_use_except): Likewise.
11079         (model_start_update_pressure, model_update_pressure): Likewise.
11080         (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
11081         (model_excess_cost, model_dump_pressure_points): Likewise.
11082         (model_set_excess_costs): Likewise.
11083         (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
11084         SCHED_PRIORITY_MODEL.  Use insn_delay.  Use the order in the model
11085         schedule as an alternative tie-breaker.  Update the call to
11086         dep_list_size.
11087         (ready_sort): Call model_set_excess_costs.
11088         (update_register_pressure): Update call to mark_regno_birth_or_death.
11089         Rely on that function to check liveness rather than doing it here.
11090         (model_classify_pressure, model_order_p, model_add_to_worklist_at)
11091         (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
11092         (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
11093         (model_record_pressure, model_record_pressures): New functions.
11094         (model_record_final_pressures, model_add_successors_to_worklist)
11095         (model_promote_predecessors, model_choose_insn): Likewise.
11096         (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
11097         (model_start_schedule, model_finalize_pressure_group): Likewise.
11098         (model_end_schedule): Likewise.
11099         (schedule_insn): Say when we're scheduling the next instruction
11100         in the model schedule.
11101         (schedule_insn): Handle SCHED_PRESSURE_MODEL.
11102         (queue_to_ready): Do not add instructions that are
11103         MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
11104         Always allow the next instruction in the model schedule to be added.
11105         (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
11106         and delay for SCHED_PRESSURE_MODEL too.
11107         (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
11108         SCHED_PRIORITY_MODEL, but also take the DFA into account.
11109         (schedule_block): Call model_start_schedule and model_end_schedule.
11110         Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
11111         (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
11112         to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
11113         region_ref_regs.
11114         (sched_finish): Update accordingly.
11115         (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
11116         to SCHED_PRESSURE_MODEL.
11117         (add_jump_dependencies): Update call to dep_list_size.
11118         (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
11119         (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
11120         to SCHED_PRESSURE_MODEL.
11121         * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
11122         allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
11123         (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
11124         handling to SCHED_PRESSURE_MODEL.
11126 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
11128         * common.opt (fsched-pressure-algorithm=): New option.
11129         * flag-types.h (sched_pressure_algorithm): New enum.
11130         * sched-int.h (sched_pressure_p): Replace with...
11131         (sched_pressure): ...this new variable.
11132         * haifa-sched.c (sched_pressure_p): Replace with...
11133         (sched_pressure): ...this new variable.
11134         (sched_regno_pressure_class, rank_for_schedule, ready_sort)
11135         (update_reg_and_insn_max_reg_pressure, schedule_insn)
11136         (debug_ready_list, prune_ready_list, schedule_block, sched_init)
11137         (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
11138         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
11139         (sched_analyze_insn): Likewise.
11140         * sched-rgn.c (schedule_region): Likewise.
11141         * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
11143 2012-04-26  Bernd Schmidt  <bernds@codesourcery.com>
11145         * PR middle-end/52997
11146         * ira.c (find_moveable_pseudos): Call resize_reg_info.
11148         PR middle-end/52940
11149         * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
11150         * expr.c (convert_move): Honor unsignedp when extending partial int
11151         modes.
11152         * genmodes.c (complete_mode): Don't clear component field of partial
11153         int modes.
11154         (emit_mode_inner): Don't emit it however.
11155         (calc_wider_mode): Partial int modes widen to their component.
11157 2012-04-26  David S. Miller  <davem@davemloft.net>
11159         * config/sparc/niagara4.md: New file.
11160         * config/sparc/sparc.md: Include it.
11161         * config/sparc/sparc.c (niagara4_costs): New processor costs.
11162         (sparc_option_override): Use it.
11163         (sparc_use_sched_lookahead): Return 2 for niagara4.
11164         (sparc_issue_rate): Likewise.
11166         * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
11167         (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
11168         (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
11169         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
11170         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
11171         alignaddrldi_vis): Set type to gsr.
11172         (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
11173         (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
11174         cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
11175         v<vis3_shift_patname><mode>3, fmean16_vis,
11176         fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
11177         fucmp<code>8<P:mode>_vis): Set type to fga.
11178         * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
11179         * config/sparc/niagara.md: Likewise.
11180         * config/sparc/niagara2.md: Likewise.
11181         * config/sparc/ultra3.md: Likewise, and fix type matching for
11182         us3_ialuX reservation.
11184 2012-04-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11186         * reload.c (find_reloads): Change the loop nesting when trying an
11187         alternative with swapped operands.
11189 2012-04-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11191         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
11192         comment. Delete unused parameter first_exp_point_map.
11193         (virt_loc_aware_diagnostic_finalizer): Update call.
11195 2012-04-26  Michael Hope  <michael.hope@linaro.org>
11196             Richard Earnshaw  <rearnsha@arm.com>
11198         * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
11199         (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
11200         (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
11201         (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
11203 2012-04-25  Sriraman Tallam  <tmsriram@google.com>
11205         * doc/extend.texi: Document avx2 support.
11206         * config/i386/i386.c (fold_builtin_cpu): Add avx2.
11208 2012-04-26  Hans-Peter Nilsson  <hp@axis.com>
11210         PR target/53120
11211         * config/cris/cris.md ("*andhi_lowpart_v32")
11212         ("*andqi_lowpart_v32"): Change first input-only operand from
11213         a (match_operand ...) to (match_dup 0).  Drop alternatives with
11214         const_int-matching constraints for redundancy.
11215         ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto.  Drop
11216         three-operand alternative.
11218 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
11220         PR target/53110
11221         * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
11222         instead expand it as zero extension.
11224 2012-04-25  H.J. Lu  <hongjiu.lu@intel.com>
11226         PR debug/52857
11227         * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
11229 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
11231         * common.opt (flag_debug_types_section): Default to 0.
11232         (dwarf_version): Default to 4.
11233         (dwarf_record_gcc_switches): Default to 1.
11234         (dwarf_strict): Default to 0.
11235         * toplev.c (process_options): Don't handle dwarf_strict
11236         or dwarf_version here.
11237         * config/vxworks.c (vxworks_override_options): Don't
11238         test whether dwarf_strict or dwarf_version are negative,
11239         instead test !global_options_set.x_dwarf_*.
11240         * config/darwin.c (darwin_override_options): Default to
11241         dwarf_version 2.
11242         * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
11243         and -fno-debug-types-section are now the default.
11245 2012-04-25  Jan Hubicka  <jh@suse.cz>
11247         * cgraphunit.c: Update toplevel comment.
11248         (tree_rest_of_compilation): Merge into cgraph_expand_function.
11249         (cgraph_analyze_function): Make static.
11250         (cgraph_decide_is_function_needed): Make static.
11251         (cgraph_add_new_function): Use expand_function instead of
11252         rest_of_compilation.
11253         (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
11254         verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
11255         Move to cgraph.c
11256         (cgraph_inline_p): Remove.
11257         (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
11258         (init_cgraph): Add comment.
11259         * cgraphbuild.c (record_reference, mark_address, mark_load,
11260         mark_store): Do not call analyze_expr hook.
11261         * cgraph.c: Update toplevel comment.
11262         (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
11263         verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
11264         Move fere from cgraphunit.c
11265         (cgraph_mark_force_output_node): Move to cgraph.h
11266         * cgraph.h: Reorder so the comments match the function placement.
11267         (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
11268         (cgraph_mark_force_output_node): Move here from cgraph.c
11269         * tree.c (free_lang_data): Do not clear analyze_expr hook.
11270         * ipa-inline-transform.c (preserve_function_body_p): New function.
11271         (inline_transform): Update.
11272         * langhooks.c (lhd_callgraph_analyze_expr): Remove.
11273         * langhooks.h (lang_hooks_for_callgraph): Remove.
11274         (lang_hooks): Remove callgraph.
11275         * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
11276         * varpool.c: Remove out of date comment.
11277         * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
11278         (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
11280 2012-04-25  Jan Hubicka  <jh@suse.cz>
11282         PR middle-end/53089
11283         * cgraphunit.c (referred_to_p): Move ahead in file to avoid
11284         forward declaration.
11285         (cgraph_finalize_function): Finalize them here.
11286         * symtab.c (dump_symtab): Dump ctors and dtors.
11288 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
11290         PR middle-end/52979
11291         * stor-layout.c (get_best_mode): Don't return mode with bitsize
11292         larger than maxbits.  Don't compute maxbits modulo align.
11293         Also check that unit bytes long store at bitpos / unit * unit
11294         doesn't affect bits beyond bitregion_end.
11295         * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
11296         would not fit into bitregion_start ... bitregion_end + 1 bit region.
11297         (store_split_bit_field): Decrease unit close to end of bitregion_end
11298         if access is restricted in order to avoid mutual recursion.
11300         PR tree-optimization/53058
11301         * double-int.h (double_int_max_value, double_int_min_value): New
11302         prototypes.
11303         * double-int.c (double_int_max_value, double_int_min_value): New
11304         functions.
11305         * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
11306         or GT_EXPR with double_int_max_value instead of double_int_mask.
11308 2012-04-25  Richard Guenther  <rguenther@suse.de>
11310         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
11311         * tree-vect-loop.c (vect_transform_loop): Adjust.
11312         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
11313         the maximum number of iterations for the epilogue loop.
11314         (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
11316 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
11318         PR c/52880
11319         * c-typeck.c (set_nonincremental_init,
11320         set_nonincremental_init_from_string): Pass true instead of false
11321         as IMPLICIT to add_pending_init.
11323 2012-04-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11325         * c-typeck.c (pop_init_level): Improve diagnostics.
11327 2012-04-25  Uros Bizjak  <ubizjak@gmail.com>
11329         * compare-elim.c (try_eliminate_compare): Also handle operands with
11330         implicit extensions.
11332 2012-04-25  Alan Modra  <amodra@gmail.com>
11334         * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
11335         V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
11336         SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
11337         (no_global_regs_above): Delete.
11338         (no_global_regs): New function.
11339         (rs6000_savres_strategy): Handle vector regs.  Use proper lr_save_p
11340         value for load multiple test.
11341         (savres_routine_syms): Increase size.
11342         (rs6000_savres_routine_name, rs6000_savres_routine_sym,
11343         ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
11344         rather than a number of boolean flags.  Update all callers.
11345         (rs6000_savres_routine_name): Generate vector save/restore names.
11346         (rs6000_savres_routine_sym): Handle vector regs.  Delete forward decl.
11347         (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
11348         (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
11349         and using_store_multiple.  Expand uses.  Don't always use r11 as
11350         frame reg when needed for out-of-line saves.  Set up initial offset
11351         for out-of-line vector saves when buying stack frame.  Handle pointer
11352         reg setup for out-of-line fp save.  Emit call to out-of-line vector
11353         save function.  Choose r11 or r12 for vrsave reg when available for
11354         better scheduling.
11355         (rs6000_output_function_prologue): Don't emit .extern for ELF.
11356         (rs6000_emit_epilogue): Choose a better frame reg when restoring
11357         from back-chain to suit out-of-line vector restore functions.  Emit
11358         call to out-of-line vector restore function.  Adjust register used
11359         for cr restore.  Tweak pointer register setup for gpr restore.
11360         * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
11361         FIXED_R13.
11362         * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
11363         (V_SAVE_INLINE): Define.
11364         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
11366 2012-04-25  Alan Modra  <amodra@gmail.com>
11368         * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
11369         out-of-line save/restore for large frames.  Don't disable
11370         out-of-line saves on ABI_AIX when using static chain reg.
11371         (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
11372         clobber static chain reg, and tweak for out-of-line gpr saves
11373         that use r1.
11375 2012-04-25  Alan Modra  <amodra@gmail.com>
11377         * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
11378         (rs6000_emit_prologue): Use the above to catch register overlap.
11380 2012-04-25  Alan Modra  <amodra@gmail.com>
11382         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
11383         decl.  Move logic selecting update reg to callers.  Update all callers.
11384         (rs6000_emit_allocate_stack): Add copy_off param.
11385         (emit_frame_save): Don't handle reg+reg addressing.
11386         (ptr_regno_for_savres): New function, extracted from..
11387         (rs6000_emit_savres_rtx): ..here.  Add lr_offset param.
11388         (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
11389         Set frame_reg_rtx to r11 whenever r11 is needed, and merge
11390         frame offset adjustment for out-of-line save with copy from sp.
11391         Simplify condition controlling whether cr is saved early or
11392         late.  Use ptr_regno_for_savres to verify correct reg is set
11393         up for out-of-line saves.  Pass the actual pointer reg used to
11394         rs6000_emit_savres_rtx so rtl matches insns in out-of-line
11395         function.  Rearrange spe vars so code is similar to that
11396         elsewhere in this function.  Don't update frame_off when spe
11397         save code will restore r11.  Use emit_frame_save for spe and
11398         gpr saves.  Consolidate darwin out-of-line gpr setup with that
11399         for other abis.  Don't assume frame_offset is zero and frame
11400         reg is sp when setting up altivec reg saves, and calculate
11401         exact offset requirement.
11402         (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off.  Tidy
11403         spe restore code.  Consolidate darwin out-of-line gpr setup
11404         with that for other abis.
11406 2012-04-25  Alan Modra  <amodra@gmail.com>
11408         * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
11409         REG_FRAME_RELATED_EXPR note when the instruction exactly matches
11410         the replacement.
11411         (emit_frame_save): Delete frame_ptr param.  Rename total_size to
11412         frame_reg_to_sp.
11413         (rs6000_emit_prologue): Add sp_off.  Update rs6000_frame_related
11414         and emit_frame_save calls.  Cope with possibly missing note.
11416 2012-04-24  Sriraman Tallam  <tmsriram@google.com>
11418         * config/i386/i386.c (build_processor_model_struct): New function.
11419         (make_var_decl): New function.
11420         (fold_builtin_cpu): New function.
11421         (ix86_fold_builtin): New function.
11422         (make_cpu_type_builtin): New function.
11423         (ix86_init_platform_type_builtins): New function.
11424         (ix86_expand_builtin): Expand new builtins by folding them.
11425         (ix86_init_builtins): Make new builtins to detect CPU type.
11426         (TARGET_FOLD_BUILTIN): New macro.
11427         (IX86_BUILTIN_CPU_INIT): New enum value.
11428         (IX86_BUILTIN_CPU_IS): New enum value.
11429         (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
11430         * config/i386/i386-builtin-types.def: New function type.
11431         * testsuite/gcc.target/builtin_target.c: New testcase.
11432         * doc/extend.texi: Document builtins.
11434 2012-04-24  Olivier Hainque  <hainque@adacore.com>
11436         * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
11437         * toplev.c (process_options): Default to dwarf_version 2.
11438         * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
11439         and dwarf_version 2.
11441 2012-04-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11443         * tree-pretty-print.h (default_tree_printer): Do not declare.
11444         * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
11445         intl.h.
11446         (default_tree_diagnostic_starter): Make static.
11447         (default_tree_printer): Move to here. Make static.
11448         (tree_diagnostics_defaults): New.
11449         * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
11450         * tree.c (free_lang_data): Use tree_diagnostics_defaults.
11451         * toplev.c: Do not include tree-pass.h.
11452         (default_tree_printer): Move from here.
11453         (general_init): Use tree_diagnostics_defaults.
11455 2012-04-24  Chao-ying Fu  <fu@mips.com>
11457         * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
11458         (mips*-*-linux*): Append mips/linux-common.h to tm_file.
11459         * config/mips/gnu-user.h
11460         (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
11461         (GNU_USER_TARGET_LINK_SPEC): New define.
11462         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
11463         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
11464         (GNU_USER_TARGET_MATHFILE_SPEC): New define.
11465         (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
11466         GNU_USER_TARGET_ENDFILE_SPEC.
11467         * config/mips/gnu-user64.h (LIB_SPEC): Remove.
11468         (GNU_USER_TARGET_LINK_SPEC): New define.
11469         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
11470         * config/mips/linux-common.h: New file.
11472 2012-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11474         PR target/47197
11475         * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
11476         (altivec_build_resolved_builtin): Call fully_fold_convert.
11478 2012-04-24  Georg-Johann Lay  <avr@gjlay.de>
11480         PR target/53065
11481         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
11483 2012-04-24  Richard Guenther  <rguenther@suse.de>
11485         PR tree-optimization/53085
11486         * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
11487         stores.
11489 2012-04-24  Richard Guenther  <rguenther@suse.de>
11491         * tree-if-conv.c (main_tree_if_conversion): Move bb under
11492         ENABLE_CHECKING.
11494 2012-04-24  Jim Meyering  <meyering@redhat.com>
11496         * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
11497         absence of an define_enum call.
11499 2012-04-24  Richard Guenther  <rguenther@suse.de>
11501         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
11502         the epilogue loop is not re-used as unvectorized version
11503         record the its maximum number of iterations.
11505 2012-04-24  Andrew Pinski  <apinski@cavium.com>
11507         * tree-ssa-forwprop.c (simplify_bitwise_binary):
11508         Don't directly use def1/def2.
11510 2012-04-24  Richard Guenther  <rguenther@suse.de>
11512         PR tree-optimization/53098
11513         * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
11514         comparison sign.
11516 2012-04-24  Andrew Pinski  <apinski@cavium.com>
11518         PR tree-opt/33512
11519         * tree-ssa-forwprop.c (defcodefor_name): New function.
11520         (simplify_bitwise_binary): Use defcodefor_name instead of manually
11521         Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
11522         Simplify "(~X | Y) & X" to "X & Y" and
11523         "(~X & Y) | X" to "X | Y".
11525 2012-04-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11527         * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
11528         validate_change to add clobbers if IN_GROUP is nonzero.
11529         (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
11530         * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
11531         prototype.
11532         * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
11533         set to false.
11534         * config/s390/s390.c (insn_invalid_p): Likewise.
11536 2012-04-24  Jakub Jelinek  <jakub@redhat.com>
11538         PR middle-end/53084
11539         * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
11540         (output_addressed_constants): Likewise.
11542         PR middle-end/52999
11543         * varasm.c (get_section): Don't ICE for section conflicts with
11544         built-in section kinds.
11546 2012-04-23  DJ Delorie  <dj@redhat.com>
11548         * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
11549         (LIBSTDCXX): Change to CPP2.
11551 2012-04-23  H.J. Lu  <hongjiu.lu@intel.com>
11553         PR bootstrap/52878
11554         * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
11555         extra_masks.
11557 2012-04-23  Uros Bizjak  <ubizjak@gmail.com>
11559         * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
11560         (*addsi_2_zext): Ditto.
11561         (*add<mode>_3): Ditto.
11562         (*addsi_3_zext): Ditto.
11563         (*add<mode>_5): Ditto.
11565 2012-04-23  Andrew Pinski  <apinski@cavium.com>
11567         * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
11568         (C & B) to (A OP0) & B.
11570 2012-04-23  Martin Jambor  <mjambor@suse.cz>
11572         * expr.c (expand_expr_real_1): Remove setting parent's alias set for
11573         temporaries created for a bitfield (reverting revision 122014).
11575 2012-04-23  Richard Guenther  <rguenther@suse.de>
11577         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
11578         the condition using is_gimple_condexpr and avoid the not necessary
11579         boolification.
11580         (set_prologue_iterations): Likewise.
11581         (vect_loop_versioning): Likewise.
11583 2012-04-23  Richard Guenther  <rguenther@suse.de>
11585         PR tree-optimization/53070
11586         * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
11587         (main_tree_if_conversion): Verify we succeeded in that.
11589 2012-04-23  Jan Hubicka  <jh@suse.cz>
11591         * lto-symtab.c (lto_cgraph_replace_node): Do not call
11592         mark_reahcable_node.
11593         * cgraph.c (cgraph_remove_node): Do not clear reachable.
11594         (cgraph_mark_reachable_node): Remove.
11595         (cgraph_mark_force_output_node): Do not set reachable.
11596         (dump_cgraph_node): Do not dump reachable.
11597         (cgraph_create_virtual_clone): Do not set reachable.
11598         * cgraph.h (cgraph_node): Remove reachable flag.
11599         (varpool_node): Remove reachable flag.
11600         (cgraph_mark_if_needed): Remove.
11601         (cgraph_mark_reachable_node): Remove.
11602         * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
11603         * cgraphunit.c (cgraph_finalize_function): Do not mark node as
11604         reachable.
11605         (cgraph_add_new_function): Likewise.
11606         (cgraph_mark_if_needed): Remove.
11607         (cgraph_analyze_function): Do not set target as reachable.
11608         (process_function_and_variable_attributes): Do not care about
11609         dllexport.
11610         (cgraph_analyze_functions): Do not set reachable flags.
11611         (cgraph_mark_functions_to_output): Do not check reachability.
11612         (cgraph_copy_node_for_versioning): Do not set reachable flag.
11613         (dbxout_expand_expr): Update.
11614         * c-decl.c (merge_decls): Do not track changed externs.
11615         * ipa.c: Include pointer-set.h
11616         (enqueue_cgraph_node): Use reachable pointer set.
11617         (process_references): Likewise.
11618         (cgraph_remove_unreachable_nodes): Likewise.
11619         (whole_program_function_and_variable_visibility): Do not recompute
11620         reachable.
11621         * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
11623 2012-04-23  Georg-Johann Lay  <avr@gjlay.de>
11625         * doc/extend.texi (AVR Named Address Spaces): Fix typos.
11627 2012-04-23  Richard Guenther  <rguenther@suse.de>
11629         PR c/53060
11630         * c-typeck.c (build_binary_op): Fix typo.
11632 2012-04-23  Jakub Jelinek  <jakub@redhat.com>
11634         PR tree-optimizations/52891
11635         * tree-vect-patterns.c (adjust_bool_pattern): Use
11636         build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
11637         but with non-standard precision.
11639 2012-04-22  Jan Hubicka  <jh@suse.cz>
11641         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
11642         tree refs.
11644 2012-04-22  Jan Hubicka  <jh@suse.cz>
11646         * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
11647         * cgraphbuild.c (record_reference, record_type_list, mark_address,
11648         mark_load, mark_store): Do not mark varpool nodes as needed.
11649         * cgraph.c (cgraph_new_nodes): Remove.
11650         (cgraph_create_function_alias): Do not mark nodes as reachable.
11651         (cgraph_add_thunk): Likewise.
11652         (cgraph_mark_reachable_node): Do not manage the queue.
11653         * cgraph.h (cgraph_node): Remove next_needed.
11654         (varpool_nodes_queue): Remove next_needed and prev_needed.
11655         (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
11656         (cgraph_new_nodes): Declare.
11657         (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
11658         (varpool_analyze_pending_decls): Remove.
11659         (varpool_analyze_node): New.
11660         (varpool_mark_needed_node): Remove.
11661         (varpool_first_variable, varpool_next_variable): New inlines.
11662         (varpool_first_static_initializer, varpool_next_static_initializer):
11663         Update.
11664         (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
11665         (varpool_first_defined_variable): New inline.
11666         (varpool_next_defined_variable): New inline
11667         (FOR_EACH_VARIABLE): Reimplement.
11668         (FOR_EACH_DEFINED_VARIABLE): Reimplement.
11669         * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
11670         needed flag.
11671         * cgraphunit.c (cgraph_new_nodes): Declare here.
11672         (enqueue_node): New function.
11673         (cgraph_process_new_functions): update for new
11674         node set; when constructing cgraph enqueue node for processing.
11675         (cgraph_add_new_function): Use new node set.
11676         (process_function_and_variable_attributes): Do not set varpool needed
11677         flags.
11678         (referred_to_p): New function.
11679         (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
11680         when varpool is in construction.
11681         (cgraph_analyze_functions): Rewrite.
11682         (cgraph_expand_all_functions): Update.
11683         (cgraph_output_in_order): Do not analyze pending decls; do not set
11684         needed flags.
11685         (cgraph_optimize): Do not analyze pending decls.
11686         * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
11687         in other partition; do not mark node as needed.
11688         * dwarf2out.c (reference_to_unused): Use analyzed flag.
11689         (premark_types_used_by_global_vars_helper): Likewise.
11690         * ipa.c (process_references): Do not call varpool_mark_needed_node.
11691         (cgraph_remove_unreachable_nodes): Do not rely on varpool and
11692         cgrpah queues.
11693         (function_and_variable_visibility): Do not mark node as needed.
11694         (whole_program_function_and_variable_visibility): Likewise.
11695         * Makefile.in (gt-varpool.h): No longer needed.
11696         * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
11697         (ipa_write_summaries): Do not use needed flag.
11698         * varpool.c: Do not include gt-varpool.h
11699         (x_varpool_nodes_queue, x_varpool_last_needed_node,
11700         x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
11701         x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
11702         Remove.
11703         (varpool_remove_node): Do not update the lists.
11704         (dump_varpool_node): Do not dump needed flag.
11705         (varpool_enqueue_needed_node): Remove.
11706         (varpool_mark_needed_node): Remove.
11707         (varpool_reset_queue): Remove.
11708         (varpool_finalize_decl): Move to cgraphunit.c
11709         (varpool_analyze_node): New functions based on former
11710         varpool_analyze_pending_decls.
11711         (varpool_analyze_pending_decls): Remove.
11712         (varpool_assemble_decl): Do not update the lists.
11713         (enqueue_node): New function.
11714         (varpool_remove_unreferenced_decls): Rewrite.
11715         (varpool_empty_needed_queue): Remove.
11716         (add_new_static_var): Do not mark node as needed.
11717         (varpool_create_variable_alias): Handle expansion state
11718         creation.
11719         * except.c (output_ttype): Do not mark node as needed.
11720         * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
11721         * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
11722         Likewise.
11723         * tree-switch-conversion.c (build_one_array): Likewise.
11725 2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11727         PR c/44774
11728         * doc/invoke.texi (pedantic): Rename to Wpedantic.
11729         * common.opt (Wpedantic): New.
11730         (pedantic): Alias Wpedantic.
11731         * diagnostic.c (warning_at): Likewise.
11732         * c-decl.c (diagnose_mismatched_decls): Likewise.
11733         (build_array_declarator): Likewise.
11734         (mark_forward_parm_decls):
11735         (check_bitfield_type_and_width): Likewise.
11736         (grokdeclarator): Likewise.
11737         (grokfield): Likewise.
11738         (finish_struct): Likewise.
11739         (build_enumerator): Likewise.
11740         (store_parm_decls_oldstyle): Likewise.
11741         (declspecs_add_qual): Likewise.
11742         (declspecs_add_type): Likewise.
11743         (finish_declspecs): Likewise.
11744         * c-typeck.c (composite_type): Likewise.
11745         (comp_target_types): Likewise.
11746         (build_array_ref): Likewise.
11747         (pointer_diff): Likewise.
11748         (build_unary_op): Likewise.
11749         (build_conditional_expr): Likewise.
11750         (build_c_cast): Likewise.
11751         (convert_for_assignment): Likewise.
11752         (maybe_warn_string_init): Likewise.
11753         (digest_init): Likewise.
11754         (pop_init_level): Likewise.
11755         (set_init_index): Likewise.
11756         (c_finish_goto_label): Likewise.
11757         (c_finish_return): Likewise.
11758         (do_case): Likewise.
11759         (build_binary_op): Likewise.
11760         * c-parser.c (static): Likewise.
11761         (c_parser_external_declaration): Likewise.
11762         (c_parser_declaration_or_fndef): Likewise.
11763         (c_parser_static_assert_declaration_no_se): Likewise.
11764         (c_parser_enum_specifier): Likewise.
11765         (c_parser_struct_or_union_specifier): Likewise.
11766         (c_parser_struct_declaration): Likewise.
11767         (c_parser_alignas_specifier): Likewise.
11768         (c_parser_braced_init): Likewise.
11769         (c_parser_initelt): Likewise.
11770         (c_parser_compound_statement_nostart): Likewise.
11771         (c_parser_conditional_expression): Likewise.
11772         (c_parser_alignof_expression): Likewise.
11773         (c_parser_postfix_expression): Likewise.
11774         (c_parser_postfix_expression_after_paren_): Likewise.
11775         (c_parser_objc_class_instance_variables): Likewise.
11776         (c_parser_objc_method_definition): Likewise.
11777         (c_parser_objc_methodprotolist): Likewise.
11779 2012-04-22  Ian Lance Taylor  <iant@google.com>
11781         * godump.c (go_output_typedef): Dump size of structs.
11783 2012-04-22  Razya Ladelsky  <razya@il.ibm.com>
11785         Correcting transform_to_exit_first_loop + fix to PR46886
11786         * tree-parloops.c (transform_to_exit_first_loop): Remove
11787         setting of number of iterations according to the loop pattern.
11788         Duplicate from entry to exit->src instead of loop->latch.
11789         (pallelize_loops): Remove the condition preventing do-while loops.
11790         * tree-cfg.c (bool bb_in_region_p): New.
11791         (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
11792         Adjust redirection of the duplicated iteration.
11794 2012-04-21  Richard Sandiford  <rdsandiford@googlemail.com>
11796         PR bootstrap/53021
11797         * rtl.def (ADDRESS): Use "i" rather than "w".
11798         * rtl.h (find_base_term): Delete.
11799         (may_be_sp_based_p): Declare.
11800         * rtl.c (rtx_code_size): Remove ADDRESS special case.
11801         * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
11802         (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
11803         * alias.c: ...here.
11804         (find_base_term): Make static.
11805         (may_be_sp_based_p): New function.
11806         * dse.c (record_store): Use it.
11807         * store-motion.c (store_killed_in_insn): Likewise.
11809 2012-04-21  Richard Sandiford  <rdsandiford@googlemail.com>
11811         * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
11813 2012-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11815         PR 35441
11816         * c-typeck.c (inform_declaration): New.
11817         (build_function_call_vec):  Do not pretty-print
11818         expressions when caret is enabled.
11819         (convert_arguments): Use inform_declaration.
11821 2012-04-20  Jim Meyering  <meyering@redhat.com>
11823         * genmodes.c (make_complex_modes): Don't truncate a mode name of
11824         length 7 or more when prepending a "C".  Suggested by Richard Guenther.
11826 2012-04-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11828         PR rtl-optimization/44214
11829         * fold-const.c (exact_inverse): New function.
11830         (fold_binary_loc): Fold vector and complex division by constant into
11831         multiply by recripocal with flag_reciprocal_math; fold vector division
11832         by constant into multiply by reciprocal with exact inverse.
11834 2012-04-20  Jan Hubicka  <jh@suse.cz>
11836         * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
11837         force flags.
11838         * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
11839         (cgraph_remove_node): Update.
11840         (cgraph_mark_needed_node): Remove.
11841         (cgraph_mark_force_output_node): New.
11842         (dump_cgraph_node): Do not dump needed flag.
11843         (cgraph_node_cannot_be_local_p_1): Update.
11844         (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
11845         * cgraph.h (symtab_node_base): Add force_output flag.
11846         (cgraph_node): Remove needed flag.
11847         (varpool_node): Remove force_output flag.
11848         (cgraph_mark_needed_node): Remove.
11849         (cgraph_mark_force_output_node): New.
11850         (cgraph_only_called_directly_or_aliased_p,
11851         varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
11852         * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
11853         * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
11854         (cgraph_add_new_function): Update.
11855         (cgraph_mark_if_needed): Update.
11856         (verify_cgraph_node): Update.
11857         (cgraph_analyze_function): Alias target is reachable.
11858         (process_function_and_variable_attributes): Update: externally_visible
11859         flag makes function reachable.
11860         (cgraph_analyze_functions): Update dumping.
11861         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
11862         input_overwrite_node, input_varpool_node): Update streaming.
11863         * lto-streamer-out.c (produce_symtab): Use force_output.
11864         * ipa.c (process_references): Weakrefs must be processed.
11865         (cgraph_remove_unreachable_nodes): Likewise; update for new
11866         force_output flag.
11867         (varpool_externally_visible_p): Weakrefs are externally visible
11868         even if they are not.
11869         (function_and_variable_visibility): Update; when processing alias
11870         pair force the targets to be output.
11871         (whole_program_function_and_variable_visility): Use
11872         mark_reachable_node.
11873         * trans-mem.c (ipa_tm_mark_needed_node): Remove
11874         (ipa_tm_mark_force_output_node): New function.
11875         (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
11876         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
11877         aliases.
11878         * varasm.c (mark_decl_referenced): Update.
11879         (find_decl_and_mark_needed): Remove.
11880         (find_decl): New function.
11881         (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
11882         alias targets as needed.
11883         (dump_tm_clone_pairs): Update.
11884         * tree-inline.c (copy_bb): Update check.
11885         * symtab.c (dump_symtab_base): Dump force_output.
11886         * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
11887         * passes.c (execute_todo): Fix dumping.
11888         * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
11889         (varpool_analyze_pending_decls): Alias target is reachable.
11890         (varpool_create_variable_alias): Finalize weakrefs.
11892 2012-04-20  Jakub Jelinek  <jakub@redhat.com>
11894         PR bootstrap/53021
11895         * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
11896         UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
11897         * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
11898         macros instead of constants.
11899         * dse.c (record_store): Check for SP ADDRESS by comparing
11900         XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
11901         XEXP to be stack_pointer_rtx.
11903 2012-04-20  Richard Guenther  <rguenther@suse.de>
11905         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
11906         update_call_from_tree when propagating into a call.
11908 2012-04-20  Alan Modra  <amodra@gmail.com>
11910         * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
11911         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.  Rename
11912         sp_offset to frame_off.  Move world save code earlier.
11914 2012-04-20  Richard Guenther  <rguenther@suse.de>
11916         PR tree-optimization/53050
11917         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
11918         Do only one transform on COND_EXPRs at the same time.
11920 2012-04-19  Jan Hubicka  <jh@suse.cz>
11922         * symtab.c (dump_symtab_base): Revert accidental checkin.
11924 2012-04-20  Alan Modra  <amodra@gmail.com>
11926         PR target/53040
11927         * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
11928         static chain, set REST_INLINE_FPRS too.
11930 2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
11932         * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
11933         nodes.
11935 2012-04-20  Richard Guenther  <rguenther@suse.de>
11937         * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
11938         loops that can never run more often than the vectorization factor.
11940 2012-04-19  Jan Hubicka  <jh@suse.cz>
11942         * symtab.c (dump_symtab_base): Fix dumping of asm lists.
11944 2012-04-19  David Edelsohn  <dje.gcc@gmail.com>
11946         * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
11948 2012-04-19  Jim Meyering  <meyering@redhat.com>
11950         * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
11951         We verified above that the string(including trailing NUL) fits in buf,
11952         so just use memcpy.
11954 2012-04-19  Richard Guenther  <rguenther@suse.de>
11956         * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
11957         for dumping DECL_SECTION_NAME.
11959 2012-04-19  Michael Matz  <matz@suse.de>
11961         PR middle-end/52977
11962         * tree.h (VECTOR_CST_NELTS): Use part number of types again.
11963         (struct tree_vector): Adjust GTY length.
11964         * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
11966         * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
11967         members.
11968         (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
11969         caller emitted the length calulation already.
11970         (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
11971         before handling any of the fields for structs.
11973 2012-04-19  Richard Guenther  <rguenther@suse.de>
11975         PR tree-optimization/53031
11976         * tree-vrp.c (adjust_range_with_scev): Revert back to
11977         using max_loop_iterations.
11979 2012-04-19  Michael Matz  <matz@suse.de>
11981         * diagnostic.c (emit_diagnostic): Move va_end call after user
11982         of the va_list.
11983         (warning, warning_at, pedwarn, permerror): Ditto.
11985 2012-04-19  Richard Guenther  <rguenther@suse.de>
11987         * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
11988         array access.
11990 2012-04-19  Georg-Johann Lay  <avr@gjlay.de>
11992         PR target/53033
11993         * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
11994         the case *(X+const).
11996 2012-04-19  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11998         * config/arm/sync.md (sync_optab): Change ior attribute to "or".
12000 2012-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12002         PR c/52283/37985
12003         * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
12004         * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
12006 2012-04-19  Richard Guenther  <rguenther@suse.de>
12008         PR rtl-optimization/44688
12009         * loop-iv.c (determine_max_iter): Only return max_iter.
12010         (iv_number_of_iterations): Also use the recorded loop bound
12011         on the maximum number of iterations.
12012         * loop-unroll.c (decide_unroll_runtime_iterations): Use
12013         max_iter to avoid unrolling loops that do not roll.
12014         (decide_unroll_stupid): Likewise.
12016 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
12018         * targhooks.c (default_case_values_threshold): Fix code style nit.
12020         * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
12021         case range and type folding from here...
12022         * gimplify.c (gimplify_switch_expr): ... to here.  Expect NULL_TREE
12023         type, as documented in tree.def.
12025 2012-04-18  Jan Hubicka  <jh@suse.cz>
12027         * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
12028         Declare.
12029         * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
12030         cgraph hash and same comdat groups.
12031         (cgraph_optimize): Verify symbol table.
12032         * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
12033         (dissolve_same_comdat_group_list): Work on symtab nodes.
12034         (function_and_variable_visibility): Dissolve variable same comdat group
12035         lists, too.
12036         * symtab.c: Include timevar.h
12037         (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
12039 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
12041         * tree-switch-conversion.c (info): Remove global pass info.
12042         (check_range, check_process_case, check_final_bb, create_temp_arrays,
12043         free_temp_arrays, gather_default_values, build_constructors,
12044         array_value_type, build_one_array, build_arrays, gen_def_assigns,
12045         fix_phi_nodes, gen_inbound_check): Pass info around from ...
12046         (process_switch): ... here.  Unify message format.  Return a const
12047         char pointer to the failure reason message.
12048         (do_switchconv): Unify message format.  Update process_switch usage.
12050         * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
12051         * tree-cfg.c (edge_to_cases): Fix documentation.
12053 2012-04-18  Uros Bizjak  <ubizjak@gmail.com>
12055         * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
12057 2012-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12059         PR tree-optimization/52976
12060         * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
12061         (possibly_move_powi): New function.
12062         (rewrite_expr_tree): Call possibly_move_powi.
12063         (rewrite_expr_tree_parallel): Likewise.
12064         (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
12065         call add_to_ops_vec instead.
12067 2012-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12069         PR tree-optimization/52976
12070         * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
12071         (decrement_power): Likewise.
12072         (propagate_op_to_single_use): Likewise.
12073         (zero_one_operation): Handle __builtin_pow* calls in linearized
12074         expression trees; factor logic into propagate_op_to_single_use.
12075         (undistribute_ops_list): Allow operands with repeat counts > 1.
12077 2012-04-18  Richard Guenther  <rguenther@suse.de>
12079         PR tree-optimization/44688
12080         * cfgloop.h (record_niter_bound): Declare.
12081         * tree-ssa-loop-niter.c (record_niter_bound): Export.
12082         Update the estimation with the upper bound here...
12083         (estimate_numbers_of_iterations_loop): ... instead of here.
12084         Do not forcefully reset a recorded upper bound.
12085         * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
12086         Record the maximum number of loop iterations of the prologue loop.
12088 2012-04-18  Jan Hubicka  <jh@suse.cz>
12090         * lto-symtab.c (lto_cgraph_replace_node): Update.
12091         * cgraphbuild.c (record_reference, record_type_list,
12092         record_eh_tables, mark_address, mark_load, mark_store): Update.
12093         * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
12094         cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
12095         Update.
12096         * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
12097         (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
12098         * reload.c: Fix typo in comment.
12099         * rtlanal.c: Likewise.
12100         * tree-emultls.c (gen_emutls_addr): Update.
12101         * ipa-reference.c (analyze_function): Update.
12102         * cgraphunit.c (cgraph_analyze_function,
12103         cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
12104         Update.
12105         * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
12106         (ipa_remove_reference): Likewise.
12107         (ipa_remove_all_refering): Rename to ...
12108         (ipa_remove_all_referring): ... this one; update.
12109         (ipa_dump_references): Update.
12110         (ipa_dump_referring): Update.
12111         (ipa_clone_references): Update.
12112         (ipa_clone_refering): Rename to ...
12113         (ipa_clone_referring): ... this one; update.
12114         (ipa_ref_cannot_lead_to_return): Update.
12115         (ipa_ref_has_aliases_p): Update.
12116         * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
12117         forward typedefs.
12118         (ipa_ref_type): Remove.
12119         (ipa_ref_ptr_u): Remove.
12120         (ipa_ref): Remove referencing, refered, refered_index, refering_type
12121         and refered_type; add referring, referred and referred_index.
12122         (ipa_ref_list): Rename refering to referring.
12123         (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
12124         ipa_clone_references, ipa_clone_referring): Update prototypes.
12125         * lto-cgraph.c (referenced_from_other_partition_p): Update.
12126         (lto_output_ref): Update.
12127         (add_references): Update.
12128         (input_varpool_node): Update.
12129         (input_refs): Update.
12130         * ipa-ref-inline.h (ipa_ref_node): Update.
12131         (ipa_ref_varpool_node): Update.
12132         (ipa_ref_referring_node): Update.
12133         (ipa_ref_referring_varpool_node): Update.
12134         (ipa_ref_referring_ref_list): Update.
12135         (ipa_ref_referred_ref_list): Update.
12136         (ipa_ref_list_first_referring): Update.
12137         (ipa_empty_ref_list): Update.
12138         (ipa_ref_list_refering_iterate): Rename to ...
12139         (ipa_ref_list_referring_iterate): ... this one.
12140         * cse.c: Update comment.
12141         * ipa-utils.c (ipa_reverse_postorder): Update.
12142         * tree-ssa-alias.c: Update.
12143         * ipa-inline.c (reset_edge_caches): Update.
12144         (update_caller_keys): Update.
12145         * ipa-inline.h: Update comments.
12146         * jump.c: Update comment.
12147         * alias.c: Likewise.
12148         * ipa.c (process_references): Update.
12149         (cgraph_remove_unreachable_nodes): Likewise.
12150         (ipa_discover_readonly_nonaddressable_var): Likewise.
12151         (cgraph_address_taken_from_non_vtable_p): Likewise.
12152         * trans-mem.c (ipa_tm_execute): Update.
12153         * simplify-rtx.c: Fix comment.
12154         * rtl.c: Fix comment.
12155         * symtab.c (symtab_unregister_node): Update.
12156         * varpool.c (dump_varpool_node): Update.
12157         (varpool_analyze_pending_decls): Update.
12158         (assemble_aliases): Update.
12159         (varpool_for_node_and_aliases): Update.
12161 2012-04-18  Richard Guenther  <rguenther@suse.de>
12163         * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
12164         use_undefined_p parameter.
12165         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
12166         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
12167         Likewise.
12168         (estimate_numbers_of_iterations): Likewise.
12169         (estimated_loop_iterations): Adjust.
12170         (max_loop_iterations): Likewise.
12171         (scev_probably_wraps_p): Likewise.
12172         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
12173         * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
12174         not max_loop_iterations.
12175         (execute_vrp): Remove explicit number of iterations estimation.
12177 2012-04-18  Enkovich Ilya  <ilya.enkovich@intel.com>
12179         * config/i386/linux-common.h: New.
12181         * config.gcc: Add i386/linux-common.h before
12182         all i386/linux.h and i386/linux64.h usages.
12184         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
12185         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
12186         * config/i386/gnu-user64.h: Likewise.
12188         * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
12189         (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
12190         (GNU_USER_TARGET_MATHFILE_SPEC): New.
12191         (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
12193 2012-04-18  Jan Hubicka  <jh@suse.cz>
12195         * cgraph.c (cgraph_node_name): Remove.
12196         (dump_cgraph_node): Use dump_symtab_base; reformat.
12197         * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
12198         debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
12199         Declare.
12200         (cgraph_node_name, varpool_node_name): Remove.
12201         (cgraph_node_asm_name, varpool_node_asm_name,
12202         cgraph_node_name, varpool_node_name): New.
12203         * tree-pass.h (TODO_dump_cgraph): Rename to ...
12204         (TODO_dump_symtab): ... this one.
12205         * ipa-cp (pass_ipa_cp): Update.
12206         * ia-reference.c (generate_summary, read_write_all_from_decl,
12207         propagate, ipa_reference_read_optimization_summary): Update.
12208         * cgraphunit.c (cgraph_analyze_functions): Update.
12209         (cgraph_optimize): Update.
12210         * ipa-ref.c (ipa_dump_references): Update.
12211         (ipa_dump_refering): Update.
12212         * ipa-inline.c (pass_ipa_inline): Update.
12213         * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
12214         * ipa.c (pass_ipa_function_visibility,
12215         pass_ipa_whole_program_visibility): Update.
12216         * tree-sra.c (pass_early_ipa_sra): Update.
12217         * symtab.c: Include langhooks.h
12218         (symtab_node_asm_name): New.
12219         (symtab_node_name): New.
12220         (symtab_type_names): New static var.
12221         (dump_symtab_base): New.
12222         (dump_symtab_node, dump_symtab): New.
12223         (debug_symtab_node,  debug_symtab): New.
12224         * tree-ssa-structalias.c: Dump symbol table.
12225         * pases.c (execute_todo): Handle TODO_dump_symtab instead
12226         of TODO_dump_cgraph.
12227         * varpoo.c (varpool_node_name): Remove.
12228         (dump_varpool_node): Use dump_symtab_base; reformat.
12230 2012-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12232         * doc/invoke.texi (Language Independent Options): @item should be
12233         before @opindex.
12235 2012-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
12237         PR bootstrap/53021
12238         * rtl.c (rtx_code_size): Handle ADDRESS.
12240 2012-04-17  Tom de Vries  <tom@codesourcery.com>
12242         * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
12243         is not a STMT_LIST.
12245 2012-04-17  Uros Bizjak  <ubizjak@gmail.com>
12247         PR target/53020
12248         * config/i386/sync.md (atomic_<code><mode>): Rename to
12249         atomic_<logic><mode>.
12251 2012-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
12253         * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
12254         * alias.c (reg_base_value): Expand and update comment.
12255         (arg_base_value): New variable.
12256         (unique_id): Move up file.
12257         (unique_base_value, unique_base_value_p, known_base_value_p): New.
12258         (find_base_value): Use arg_base_value and known_base_value_p.
12259         (record_set): Document REG_NOALIAS handling.  Use unique_base_value.
12260         (find_base_term): Use known_base_value_p.
12261         (base_alias_check): Use unique_base_value_p.
12262         (init_alias_target): Initialize arg_base_value.  Use unique_base_value.
12263         (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
12265 2012-04-17  Pat Haugen <pthaugen@us.ibm.com>
12267         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
12269 2012-04-17  Michael Matz  <matz@suse.de>
12271         PR tree-optimization/18437
12272         * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
12273         (STMT_VINFO_STRIDE_LOAD_P): New accessor.
12274         (vect_check_strided_load): Declare.
12275         * tree-vect-data-refs.c (vect_check_strided_load): New function.
12276         (vect_analyze_data_refs): Use it to accept strided loads.
12277         * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
12279 2012-04-17  Richard Guenther  <rguenther@suse.de>
12281         PR middle-end/53011
12282         * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
12283         loops when redirecting an entry or latch edge.
12285 2012-04-17  Bernd Schmidt  <bernds@codesourcery.com>
12287         * sel-sched.c (sel_global_init): Revert previous change.
12289 2012-04-17  Richard Guenther  <rguenther@suse.de>
12291         * tree-flow.h (array_at_struct_end_p): Move declaration ...
12292         * tree.h (array_at_struct_end_p): ... here.
12293         * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
12294         * expr.c (array_at_struct_end_p): ... here.  Rewrite.
12296 2012-04-17  Steven Bosscher  <steven@gcc.gnu.org>
12298         * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
12299         COST_TABLE): Remove.
12300         (estimate_case_costs): Remove.
12301         (expand_case): Do not call estimate_case_costs
12302         to set use_cost_table.
12303         (balance_case_nodes): Do not use use_cost_table.
12305 2012-04-16  Jan Hubicka  <jh@suse.cz>
12307         * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
12308         (hash_node, eq_node): Remove.
12309         (cgraph_create_node): Do not handle hashtable.
12310         (cgraph_get_node): Remove.
12311         (cgraph_insert_node_to_hashtable): Remove.
12312         (hash_node_by_assembler_name): Remove.
12313         (eq_assembler_name): Remove.
12314         (cgraph_node_for_asm): Rewrite.
12315         (cgraph_find_replacement_node): Break out from ...
12316         (cgraph_remove_node): ... here; do not maintain hashtables.
12317         (change_decl_assembler_name): Remove.
12318         (cgraph_clone_node): Do not maintain hashtables.
12319         * cgraph.h (const_symtab_node): New typedef.
12320         (cgraph_insert_node_to_hashtable): Remove.
12321         (symtab_get_node, symtab_node_for_asm,
12322         symtab_insert_node_to_hashtable): Declare.
12323         (cgraph_find_replacement_node): Declare.
12324         (cgraph_get_node, varpool_get_node): Turn into inlines.
12325         (cgraph, varpool): Work sanely on NULL pointers.
12326         (FOR_EACH_SYMBOL): New walker.
12327         * ipa-inline-transform.c (save_inline_function_body): Use
12328         symtab_insert_node_to_hashtable.
12329         * symtab.c: Include ggc.h and diagnostics.h
12330         (symtab_hash, assembler_name_hash): New static vars;
12331         (hash_node, eq_node, hash_node_by_assembler_name,
12332         eq_assembler_name, insert_to_assembler_name_hash,
12333         unlink_from_assembler_name_hash): New.
12334         (symtab_register_node): Update hashtables.
12335         (symtab_insert_node_to_hashtable): New.
12336         (symtab_unregister_node): Update hashtables.
12337         (symtab_get_node): New.
12338         (symtab_node_for_asm): New.
12339         (change_decl_assembler_name): New.
12340         * Makefile.in (symtab.o): Needs GTY.
12341         * varpool.c (varpool_hash): Remove.
12342         (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
12343         (varpool_node): Rewrite using varpool_get_node.
12344         (varpool_remove_node): DO not maintain hashtables.
12345         (varpool_node_for_asm): Rewrite.
12347 2012-04-16  Sandra Loosemore  <sandra@codesourcery.com>
12349         * doc/invoke.texi:  Copy-edit to put verbs in the present tense
12350         when describing the current behavior of GCC.
12352 2012-04-16  Richard Sandiford  <rdsandiford@googlemail.com>
12354         * genemit.c (gen_exp): Remove ADDRESS handling.
12355         * genoutput.c (scan_operands): Likewise.
12356         * genpeep.c (match_rtx): Likewise.
12357         * genrecog.c (add_to_sequence): Likewise.
12359 2012-04-16  David Edelsohn  <dje.gcc@gmail.com>
12361         * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
12363 2012-04-16  Martin Jambor  <mjambor@suse.cz>
12365         * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
12366         bit-fields.
12368 2012-04-16  Ulrich Weigand  <ulrich.weigand@linaro.org>
12370         PR target/51819
12371         * config/arm/arm.c (arm_print_operand): Fix invalid alignment
12372         hints for 'A' operand types.
12374 2012-04-16  Jan Hubicka  <jh@suse.cz>
12376         * cgraph.h (symtab_node_base): Add next and previous pointers.
12377         (cgraph_node): Remove next and preivous pointers.
12378         (varpool_node): Likewise; remove next/previous GTY marker;
12379         it is not type safe.
12380         (symtab_node_def): Update GTY marker
12381         (x_cgraph_nodes, cgraph_nodes): Remove.
12382         (symtab_nodes): New function.
12383         (cgraph_order): Rename to ...
12384         (symtab_order): ... this one.
12385         (symtab_register_node, symtab_unregister_node, symtab_remove_node):
12386         Declare.
12387         (x_varpool_nodes, varpool_nodes): Remove.
12388         (FOR_EACH_STATIC_VARIABLE): Update.
12389         (symtab_function_p, symtab_variable_p): New function.
12390         (FOR_EACH_VARIABLE): Update.
12391         (varpool_first_variable, varpool_next_variable): New functions.
12392         (FOR_EACH_VARIABLE): Update.
12393         (cgraph_first_defined_function): Update.
12394         (cgraph_next_defined_function, cgraph_next_defined_function): Update.
12395         (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
12396         (cgraph_first_function, cgraph_next_function): New.
12397         (FOR_EACH_FUNCTION): Update.
12398         (cgraph_first_function_with_gimple_body,
12399         cgraph_next_function_with_gimple_body): Update.
12400         * symtab.c: New file.
12401         * cgraph.c: Update copyright dates.
12402         (x_cgraph_nodes, cgraph_order): Remove.
12403         (NEXT_FREE_NODE): Update.
12404         (SET_NEXT_FREE_NODE): New.
12405         (cgraph_create_node_1): Remove common code.
12406         (cgraph_create_node): Remove common code; call symtab_register_node.
12407         (cgraph_remove_node): Remove common code; call symtab_unregister-node.
12408         (cgraph_add_asm_node): Update.
12409         (cgraph_clone_node): Register new node.
12410         * cgraphunit.c (process_function_and_variable_attributes): Update.
12411         (cgraph_analyze_functions): Update.
12412         (cgraph_analyze_functions): Update.
12413         (cgraph_output_in_order): Update.
12414         * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
12415         Update.
12416         * ipa-inline.c (recursive_inlining): Update.
12417         * lto-streamer-in.c (lto_input_toplevel_asms): Update.
12418         * ipa.c (cgraph_remove_unreachable_nodes): Update.
12419         * Makefile.in: Add symtab.o
12420         * varpool.c (x_varpool_nodes): Remove
12421         (varpool_node): Remove common code; call symtab_register_node.
12422         (varpool_remove_node): Remove common code; call symtab_unregister_node.
12424 2012-04-16  Richard Guenther  <rguenther@suse.de>
12426         PR middle-end/52977
12427         * tree.h (VECTOR_CST_NELTS): Adjust.
12428         (struct tree_vector): Add explicit length field.
12429         (make_vector_stat): Declare.
12430         (make_vector): Define.
12431         * tree.c (make_vector_stat): New function.
12432         (build_vector_stat): Use it.
12433         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
12435 2012-04-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12437         PR tree-optimization/52976
12438         * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
12439         (undistribute_ops_list): Ops with repeat counts aren't eligible for
12440         undistribution.
12441         (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
12443 2012-04-16  Jan Hubicka  <jh@suse.cz>
12445         * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
12446         New macros.
12447         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
12448         walkers to walk cgraph and varpool.
12449         * cgraph.c (cgraph_node_for_asm): Likewise.
12450         (dump_cgraph): Likewise.
12451         * value-prof.c (init_node_map): Likewise.
12452         * tree.c (free_lang_data_in_cgraph): Likewise.
12453         * tree-emutls.c: (ipa_lower_emutls): Likewise.
12454         * ipa-reference.c (generate_summary, propagate): Likewise.
12455         * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
12456         cgraph_mark_functions_to_output, cgraph_output_in_order,
12457         output_weakrefs, cgraph_materialize_all_clones,
12458         cgraph_optimize): Likewise.
12459         * lto-cgraph.c (merge_profile_summaries): Likewise.
12460         (input_cgraph): Likewise.
12461         * ipa-pure-const.c (generate_summary): Likewise.
12462         (propagate): Likwise.
12463         * ipa-utils.c (ipa_reduced_postorder): Likewise.
12464         (ipa_free_postorder_info): Likewise.
12465         (ipa_reverse_postorder): Likewise.
12466         * ipa-inline.c (ipa_inline): Likewise.
12467         * matrix-reorg.c (find_matrices_decl): Likewise.
12468         (matrix_reorg): Likewise.
12469         * tree-vectorizer.c (increase_alignment): Likewise.
12470         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
12471         (function_and_variable_visibility): Likewise.
12472         (whole_program_function_and_variable_visibility): Likewise.
12473         (ipa_cdtor_merge): Likewise.
12474         * trans-mem.c (ipa_tm_execute): Likewise.
12475         * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
12476         * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
12477         (ipa_print_all_params): Likewise.
12478         (ipa_update_after_lto_read): Likewise.
12479         * tree-profie.c (tree_profiling): Likewise.
12480         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12481         * passes.c (dump_passes): Likewise.
12482         (do_per_function): Likewise.
12483         (ipa_write_summaries): Likewise.
12484         * varpool.c (dump_varpool): Likewise.
12485         (varpool_node_for_asm): Likewise.
12486         (varpool_assemble_pending_decls): Likewise.
12488 2012-04-16  Richard Guenther  <rguenther@suse.de>
12490         PR tree-optimization/52975
12491         * tree-if-conv.c (predicate_bbs): Do not simplify inverted
12492         condition but always mark it with TRUTH_NOT_EXPR.
12494 2012-04-16  Richard Guenther  <rguenther@suse.de>
12496         PR tree-optimization/52975
12497         * tree-ssa-forwprop.c (combine_cond_exprs): New function.
12498         (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
12499         and VEC_COND_EXPRs.  Also combine into VEC_COND_EXPRs condition.
12500         * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
12502 2012-04-14  Uros Bizjak  <ubizjak@gmail.com>
12504         * config/i386/sse.md (ssse3_plusminus): New code iterator.
12505         (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
12506         avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
12507         (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
12508         ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
12509         (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
12510         ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
12512         (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
12513         avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
12514         (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
12515         ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
12516         (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
12517         ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
12519         (xop_plus): New code iterator.
12520         (macs): New code attribute.
12521         (macds): Ditto.
12522         (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
12523         xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
12524         iterator.
12525         (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
12526         xop_plus code iterator.
12527         (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
12528         xop_plus code iterator.
12529         (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
12530         xop_plus code iterator.
12531         (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
12532         xop_plus code iterator.
12534         (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
12535         any_extend code iterator.
12536         (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
12537         any_extend code iterator.
12538         (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
12539         any_extend code iterator.
12540         (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
12541         any_extend code iterator.
12542         (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
12543         any_extend code iterator.
12544         (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
12545         any_extend code iterator.
12547 2012-04-14  Tom de Vries  <tom@codesourcery.com>
12549         * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
12550         call to delete_insn.  Remove code to reorder BASIC_BLOCK note and
12551         DELETED_LABEL note, and move it to ...
12552         * cfgrtl.c (delete_insn): ... here.  Change return type to void.
12553         (delete_insn_and_edges): Likewise.
12554         (delete_insn_chain): Handle new return type of delete_insn.  Delete
12555         chain backwards rather than forwards.
12556         * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
12557         void.
12558         * cfglayout.c (fixup_reorder_chain): Delete unused label.
12560 2012-04-14  Jan Hubicka  <jh@suse.cz>
12562         * cgraph.h: Update copyrights;
12563         (symtab_node): Turn to union typedef.
12564         (symtab_node_base): New structure.
12565         (symtab_type): Add SYMTAB_SYMBOL tag.
12566         (cgraph_node): Annotate some pinters with nested_ptr.
12567         (varpool_node): Likewise.
12568         (cgraph_local_info): Remove lto_file_data
12569         and externally_visible.
12570         (cgraph_node): Remove decl; same_comdat_group list;
12571         aux; ref_list; order; address_taken; reachable_from_other_parittion,
12572         in_other_partition; resolution.
12573         (varpool_node): Remove decl; same_comdat_group;
12574         ref_list; lto_file_data; aux; order; resolution; externally_visible;
12575         used_from_other_partition; in_other_partition.
12576         (symtab_node_def): New union.
12577         (cgraph, varpool): Update.
12578         (varpool_first_static_initializer, varpool_next_static_initializer,
12579         cgraph_only_called_directly_or_aliased_p,
12580         varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
12581         varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
12582         varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
12583         field references.
12584         * cgraph.c: Likewise.
12585         (cgraph_hash, assembler_name_hash): Turn into symtab_node.
12586         * cgraphbuild.c: Likewise.
12587         * lto-symtab.c: Likewise.
12588         * c-gimplify.c: Likewise.
12589         * value-prof.c: Likewise.
12590         * tree.c: Likewise.
12591         * ipa-cp.c: Likewise.
12592         * tree-emutls.c: Likewise.
12593         * ipa-inline-transform.c: Likwise.
12594         * ipa-reference.c: Likewise.
12595         * cgraphunit.c: Likewise.
12596         * ipa-ref.c: Likewise.
12597         * lto-cgraph.c: Likewise.
12598         * ipa-ref-inline.h: Likewise.
12599         * ipa-pure-const.c: Likewise.
12600         * lto-streamer-out.c: Likewise.
12601         * ipa-utils.c: Likewise.
12602         * ipa-inline.c: Likewise.
12603         * matrix-reorg.c: Likewise.
12604         * tree-eh.c: Likewise.
12605         * tree-vectorizer.c: Likewise.
12606         * ipa-split.c: Likewise.
12607         * ipa.c: Likewise.
12608         * trans-mem.c: Likewise.
12609         * ipa-inline-analysis.c: Likewise.
12610         * gimplify.c: Likewise.
12611         * cfgexpand.c: Likewise.
12612         * tree-sra.c: Likewise.
12613         * ipa-prop.c: Likewise.
12614         * varasm.c: Likewise.
12615         * tree-nested.c: Likewise.
12616         * tree-inline.c: Likewise.
12617         * tree-profile.c: Likewise.
12618         * tree-ssa-structalias.c: Likewise.
12619         * passes.c: Likewise.
12620         * varpool.c: Likewise.
12622 2012-04-14  Tom de Vries  <tom@codesourcery.com>
12624         * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
12625         same_succ_hash, with local_def inlined.  Use SINGLE_SSA_DEF_OPERAND.
12626         Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.  Remove use
12627         of find_edge.
12628         (gsi_advance_fw_nondebug_nonlocal): New function.
12629         (local_def): Removed function.
12630         (same_succ_hash): Use stmt_local_def.
12631         (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
12632         (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
12634 2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
12636         * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
12637         and __ILP32__ for x32.
12639 2012-04-13  Martin Jambor  <mjambor@suse.cz>
12641         PR middle-end/52939
12642         * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
12643         fold_ctor_reference returns a zero constant.
12645 2012-04-13  Enkovich Ilya  <ilya.enkovich@intel.com>
12647         * config.gcc: Add i386/gnu-user-common.h before all
12648         i386/gnu-user.h and i386/gnu-user64.h usages.
12650         * config/i386/gnu-user-common.h: New.
12652         * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
12653         (CC1_SPEC): Likewise.
12654         (ENDFILE_SPEC): Likewise.
12655         (DEFAULT_PCC_STRUCT_RETURN): Likewise.
12656         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
12657         (TARGET_OS_CPP_BUILTINS): Likewise.
12658         (LIBGCC2_HAS_TF_MODE): Likewise.
12659         (LIBGCC2_TF_CEXT): Likewise.
12660         (TF_SIZE): Likewise.
12661         (TARGET_ASM_FILE_END): Likewise.
12662         (STACK_CHECK_MOVING_SP): Likewise.
12663         (STACK_CHECK_STATIC_BUILTIN): Likewise.
12664         * config/i386/gnu-user64.h: Likewise.
12666 2012-04-13  Martin Jambor  <mjambor@suse.cz>
12668         * expr.c (expand_expr_real_1): Pass type, not the expression, to
12669         set_mem_attributes for a memory temporary. Do not call the function
12670         for the memory temporary created for a bitfield.
12672 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
12674         PR debug/48866
12675         * df.h (enum debug_temp_where): New.
12676         (dead_debug_init, dead_debug_finish) Declare.
12677         (dead_debug_add, dead_debug_insert_temp): Declare.
12678         (struct dead_debug_use, struct dead_debug): Moved from...
12679         * df-problems.c: ... here.
12680         (df_set_unused_notes_for_mw): Bind debug uses of unused regno
12681         to a debug temp.
12682         (df_create_unused_note): Likewise.
12683         (df_set_dead_notes_for_mw): Move comment where it belongs.
12684         (dead_debug_init): Export.
12685         (dead_debug_reset_uses): New, factored out of...
12686         (dead_debug_finish): ...this.  Export.
12687         (dead_debug_reset): Remove.
12688         (dead_debug_add): Export.
12689         (dead_debug_insert_before): Rename to...
12690         (dead_debug_insert_temp): ... this.  Add where argument.  Export.
12691         Locate stored value for BEFORE_WITH_VALUE.  Avoid repeat inserts.
12692         Return insertion count.
12693         (df_note_bb_compute): Adjust.
12694         * dce.c (word_dce_process_block): Adjust dead debug uses.
12695         (dce_process_block): Likewise.
12697 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
12699         * df-problems.c (df_note_bb_compute): Do not take note of
12700         debug uses for whose REGs we won't emit DEAD or UNUSED notes.
12702 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
12704         PR debug/51570
12705         * var-tracking.c (expand_depth): New type.
12706         (onepart_aux, expand_loc_callback_data): Change depth type to it.
12707         (loc_exp_dep_alloc): Adjust initializer.
12708         (update_depth): Use new type.  Add entryvals.
12709         (vt_expand_var_loc_chain): Take note of expansions with
12710         ENTRY_VALUEs, but don't accept them right away.  Run an optional
12711         second pass accepting the minimum ENTRY_VALUE count found in the
12712         first pass.
12713         (vt_expand_loc_callback, INIT_ELCD): Adjust.
12715 2012-04-13  Tom de Vries  <tom@codesourcery.com>
12717         * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
12718         parameters vuse and vuse_escaped.
12719         (find_duplicate): Init vuse1, vuse2 and vuse_escaped.  Pass to
12720         gsi_advance_bw_nondebug_nonlocal.  Return if vuse_escaped and
12721         vuse1 != vuse2.
12723 2012-04-13  Richard Guenther  <rguenther@suse.de>
12725         PR tree-optimization/52969
12726         * tree-if-conv.c (predicate_mem_writes): Properly gimplify
12727         the condition for the COND_EXPR and handle predicate negation
12728         by swapping the COND_EXPR arms.
12730 2012-04-13  Nick Clifton  <nickc@redhat.com>
12732         * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
12733         TODO_dump_func flag.
12735 2012-04-13  Andrey Belevantsev  <abel@ispras.ru>
12737         PR rtl-optimization/52203
12738         PR rtl-optimization/52715
12740         Revert the 2012-03-07 fix for PR 52203.
12741         * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
12742         the insn does not modify DFA right before issuing, adjust
12743         issue_rate accordingly.
12745 2012-04-13  Richard Guenther  <rguenther@suse.de>
12747         PR c/52549
12748         * c-typeck.c (pointer_diff): Remove bogus assert.
12750 2012-04-13  Richard Guenther  <rguenther@suse.de>
12752         PR c/52862
12753         * convert.c (convert_to_pointer): Remove special-casing of zero.
12755 2012-04-13  Joey Ye  <joey.ye@arm.com>
12757         * config/arm/constraints.md (Pe): New constraint.
12758         * config/arm/arm.md: New split for imm 256-510.
12760 2012-04-13  Terry Guo  <terry.guo@arm.com>
12762         * config/arm/arm-cores.def: Added core cortex-m0plus.
12763         * config/arm/arm-tune.md: Regenerated.
12764         * config/arm/arm-tables.opt: Regenerated.
12765         * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
12767 2012-04-13  Alan Modra  <amodra@gmail.com>
12769         PR target/52828
12770         * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
12771         tie regs on destination of sets.  Delete forward declaration.
12772         (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
12773         (rs6000_emit_prologue): Likewise.
12774         (rs6000_emit_epilogue): Likewise.  Use in place of gen_frame_tie
12775         and gen_stack_tie.
12776         (is_mem_ref): Use tie_operand to recognise stack ties.
12777         * config/rs6000/predicates.md (tie_operand): New.
12778         * config/rs6000/rs6000.md (restore_stack_block): Generate new
12779         stack tie rtl.
12780         (restore_stack_nonlocal): Likewise.
12781         (stack_tie): Update.
12782         (frame_tie): Delete.
12784 2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12786         * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
12787         HOST_WIDE_INT_PRINT_DEC in format strings.
12789 2012-04-12  Uros Bizjak  <ubizjak@gmail.com>
12791         PR target/52932
12792         * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
12793         argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
12794         * config/i386/sse.md (UNSPEC_VPERMVAR): New.
12795         (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
12796         (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
12797         (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
12798         avx2_permvarv8si using VI4F_256 mode iterator.
12799         * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
12800         Update builtin type to V8SF_FTYPE_V8SF_V8SI.
12801         (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
12802         gen_avx2_permvarv8sf.
12803         (expand_vec_perm_pshufb): Ditto.
12805 2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
12807         PR target/52775
12808         * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
12809         the list of options to enable the FCFID instruction.
12810         (TARGET_EXTRA_BUILTINS): Adjust comment.
12812 2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12814         PR tree-optimization/18589
12815         * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
12816         (operand_entry): Add count field.
12817         (add_repeat_to_ops_vec): New function.
12818         (completely_remove_stmt): Likewise.
12819         (remove_def_if_absorbed_call): Likewise.
12820         (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
12821         (acceptable_pow_call): New function.
12822         (linearize_expr_tree): Look for builtin pow/powi calls and add operand
12823         entries with repeat counts when found.
12824         (repeat_factor_d): New struct and associated typedefs.
12825         (repeat_factor_vec): New static vector variable.
12826         (compare_repeat_factors): New function.
12827         (get_reassoc_pow_ssa_name): Likewise.
12828         (attempt_builtin_powi): Likewise.
12829         (reassociate_bb): Call attempt_builtin_powi.
12830         (fini_reassoc): Two new calls to statistics_counter_event.
12832 2012-04-12  Richard Guenther  <rguenther@suse.de>
12834         * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
12835         * cgraph.h (tree_rest_of_compilation): Remove.
12836         * cgraph.c (cgraph_add_new_function): Move ...
12837         * cgraphunit.c (cgraph_add_new_function): ... here.
12838         (tree_rest_of_compilation): Make static.
12839         (cgraph_expand_function): Do not set cgraph_function_flags_ready.
12840         * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
12841         gate_all_early_local_passes, execute_all_early_local_passes,
12842         pass_early_local_passes, gate_all_early_optimizations,
12843         pass_all_early_optimizations): Move ...
12844         * passes.c (gate_all_optimizations, pass_all_optimizations,
12845         gate_all_early_local_passes, execute_all_early_local_passes,
12846         pass_early_local_passes, gate_all_early_optimizations,
12847         pass_all_early_optimizations): ... here.
12848         * tree-optimize.c (execute_free_datastructures): Remove.
12849         * tree-flow.h (execute_free_datastructures): Remove.
12850         * tree-optimize.c (execute_init_datastructures,
12851         pass_init_datastructures): Move ...
12852         * tree-ssa.c (execute_init_datastructures,
12853         pass_init_datastructures): ... here.
12854         * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
12855         execute_free_datastructures.
12857 2012-04-12  Bernd Schmidt  <bernds@codesourcery.com>
12859         * dbgcnt.def (ira_move): New counter.
12860         * ira-int.h (ira_create_new_reg): Declare function.
12861         (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
12862         * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
12863         no longer static.  All callers changed.
12864         * ira.c: Include "dbgcnt.h".
12865         (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
12866         move_unallocated_pseudos): New static functions.
12867         (first_moveable_pseudo, last_moveable_pseudo): New global variables.
12868         (pseudo_replaced_reg, pseudo_move_insn): New static variables.
12869         (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
12870         * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
12871         to the pseudos generated in find_moveable_pseudos.
12872         * Makefile.in (ira.o): Add $(DBGCNT_H).
12874 2012-04-12  Richard Guenther  <rguenther@suse.de>
12876         PR tree-optimization/52943
12877         * tree-chrec.h (chrec_is_positive): Remove.
12878         * tree-scalar-evolution.c (chrec_is_positive): Move ...
12879         * tree-data-ref.c (chrec_is_positive): ... here.  Make static.
12880         Return false for a constant zero instead of negative.
12881         (analyze_siv_subscript_cst_affine): Handle zero difference
12882         in the initial condition explicitely.
12884 2012-04-12  Richard Guenther  <rguenther@suse.de>
12886         * tree-parloops.c (parallelize_loops): Also consult the upper
12887         bound for the number of iterations.
12888         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
12889         (loop_prefetch_arrays): Likewise.
12891 2012-04-12  Richard Guenther  <rguenther@suse.de>
12893         * cfgloop.h (estimated_loop_iterations_int): Ditch
12894         'conservative' parameter.
12895         (max_stmt_executions_int): Likewise.
12896         (estimated_loop_iterations): Likewise.
12897         (max_stmt_executions): Likewise.
12898         (max_loop_iterations): Declare.
12899         (max_loop_iterations_int): Likewise.
12900         (estimated_stmt_executions): Likewise.
12901         (estimated_stmt_executions_int): Likewise.
12902         * tree-ssa-loop-niter.c (estimated_loop_iterations):
12903         Split parts to ...
12904         (max_loop_iterations): ... this.
12905         (estimated_loop_iterations_int): Split parts to ...
12906         (max_loop_iterations_int): ... this.
12907         (max_stmt_executions_int): Split parts to ...
12908         (estimated_stmt_executions_int): ... this.
12909         (max_stmt_executions): Split parts to ...
12910         (estimated_stmt_executions): ... this.
12911         * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
12912         * predict.c (predict_loops): Likewise.
12913         * tree-data-ref.c (max_stmt_executions_tree): Likewise.
12914         (analyze_siv_subscript_cst_affine): Likewise.
12915         (compute_overlap_steps_for_affine_1_2): Likewise.
12916         (analyze_subscript_affine_affine): Likewise.
12917         (init_omega_for_ddr_1): Likewise.
12918         * tree-parloops.c (parallelize_loops): Likewise.
12919         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
12920         (may_eliminate_iv): Likewise.
12921         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
12922         (loop_prefetch_arrays): Likewise.
12923         * tree-vrp.c (adjust_range_with_scev): Likewise.
12925 2012-04-12  Oleg Endo  <olegendo@gcc.gnu.org>
12927         * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
12928         * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
12929         Fix line width.
12930         (dump_table): Use bool type for need_align and have_df variables.
12931         (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
12932         (regs_used): Remove register modifier.
12933         (barrier_align): Move variables slot, credit, jump_to_next
12934         into if block above for loop.  Use bool type for jump_to_next.
12935         (sh_function_arg): Use NULL_RTX instead of 0.
12937 2012-04-11  Andreas Schwab  <schwab@linux-m68k.org>
12939         * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
12940         (bswapsi2): New expander.
12942 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12944         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
12945         0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
12947 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12949         PR rtl-optimization/52876
12950         * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
12951         Don't call mark_reg_pointer for incompatible pointer sign extension.
12953         * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
12954         directly.
12956 2012-04-11  Bernd Schmidt  <bernds@codesourcery.com>
12958         * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
12959         comparisons against TYPE_PRECISION.
12960         * tree-ssa-forwprop.c (combine_conversions): Likewise.
12962 2012-04-11  Xinliang David Li  <davidxl@google.com>
12964         * tree-passes.h: Remove TODO_dump_func.
12965         * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
12966         * trans-mem.c: Remove TODO_dump_func.
12967         * ira.c: Remove TODO_dump_func.
12969 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12971         * config/i386/i386.c (ix86_option_override_internal): Check
12972         SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
12973         after TARGET_64BIT is updated.
12975 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
12977         * config/sh/sh.h: Remove old secondary reload code.
12979 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
12981         * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
12982         (ready_reorder): ... this function.
12984 2012-04-11  Bernd Schmidt  <bernds@codesourcery.com>
12986         * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
12987         sched_init calls.
12989         * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
12990         insns so that no other insn is queued for a time before them.
12992         * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
12993         unknown.
12995 2012-04-11  Richard Guenther  <rguenther@suse.de>
12997         PR middle-end/52621
12998         * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
12999         consider loop nesting.
13000         (evolution_function_is_univariate_p): Properly check the remainder
13001         for chrecs.
13003 2012-04-11  Richard Guenther  <rguenther@suse.de>
13005         PR middle-end/52918
13006         * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
13008 2012-04-11  Nick Clifton  <nickc@redhat.com>
13010         * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
13011         information, if requested.
13013         * config/rx/rx.c (rx_expand_prologue): Likewise.
13015 2012-04-11  Peter Bergner  <bergner@vnet.ibm.com>
13016             Michael Matz  <matz@suse.de>
13018         PR target/16458
13019         * rtlanal.c (unsigned_reg_p): New function.
13020         Update copyright notice dates.
13021         * rtl.h (unsigned_reg_p): Prototype it.
13022         Update copyright notice dates.
13023         * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
13024         Update comment.
13025         * expr.c (expand_expr_real_1): Set register attributes.
13026         * stmt.c (expand_case): Likewise.
13028 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
13030         PR target/50751
13031         * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
13032         consider_sh2a and allow_zero.
13033         * config/sh/sh.c (sh_legitimate_index_p): Likewise.
13034         (disp_addr_displacement): New function.
13035         (sh_address_cost): Use disp_addr_displacement function instead
13036         of DISP_ADDR_OFFSET.
13037         (sh_legitimate_address_p): Adapt to changed
13038         sh_legitimate_index_p declaration.
13039         (sh_find_mov_disp_adjust): Remove HImode check.
13040         (sh_secondary_reload): Add HImode case.  Use satisfies_constraint_Sdd,
13041         disp_addr_displacement and max_mov_insn_displacement.
13042         (max_mov_insn_displacement): Remove HImode check.
13043         * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
13044         DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
13045         * config/sh/constraints.md (K05, K13): New constraints.
13046         (K12): Correct comment.
13047         (Sdd): Do not use DISP_ADDR_P macro.
13048         (Snd, Sbw): Use satisfies_constraint_Sdd.
13049         * config/sh/sh.md (extendhisi2): Remove constraints from expander.
13050         (*extendhisi2_compact, movhi_i): Remove.
13051         (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
13052         *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
13053         *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
13054         *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
13055         (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
13056         *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
13057         *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
13058         CONST_OK_FOR_Kxx.
13059         Add new peepholes for HImode displacement addressing.
13061 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
13063         * config/sh/sh.h (SIDI_OFF): Remove.
13064         * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
13065         DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
13066         or operand_subword.
13068 2012-04-11  Eric Botcazou  <ebotcazou@adacore.com>
13070         PR target/52624
13071         * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
13072         (PowerPC AltiVec/VSX Built-in Functions): Remove it.
13073         * doc/md.texi (Standard Names): Add bswap.
13074         * builtin-types.def (BT_UINT16): New primitive type.
13075         (BT_FN_UINT16_UINT16): New function type.
13076         * builtins.def (BUILT_IN_BSWAP16): New.
13077         * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
13078         (expand_builtin) <BUILT_IN_BSWAP16>: New case.  Pass TARGET_MODE to
13079         expand_builtin_bswap.
13080         (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
13081         (fold_builtin_1): Likewise.
13082         (is_inexpensive_builtin): Likewise.
13083         * optabs.c (expand_unop): Deal with bswap in HImode specially.  Add
13084         missing bits for bswap to libcall code.
13085         * tree.c (build_common_tree_nodes): Build uint16_type_node.
13086         * tree.h (enum tree_index): Add TI_UINT16_TYPE.
13087         (uint16_type_node): New define.
13088         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
13089         * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
13090         above builtin.
13091         (rs6000_init_builtins): Likewise.
13092         * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
13094 2012-04-11  Tristan Gingold  <gingold@adacore.com>
13096         * doc/extend.texi (Type Attributes): Move paragraph.
13098 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13100         PR 24985
13101         * diagnostic.h (show_caret): Declare.
13102         (caret_max_width): Declare.
13103         (diagnostic_show_locus): Declare.
13104         * diagnostic.c (diagnostic_initialize): Initialize to false.
13105         (diagnostic_show_locus): New.
13106         (diagnostic_report_diagnostic): Call it.
13107         (getenv_columns): New.
13108         (adjust_line): New.
13109         (diagnostic_set_caret_max_width): New.
13110         * input.c (read_line): New.
13111         (location_get_source_line): New.
13112         * input.h (location_get_source_line): Declare.
13113         * toplev.c (general_init): Initialize show_caret from options.
13114         * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
13115         * opts.c (common_handle_option): Likewise.
13116         * pretty-print.h (pp_get_prefix): New.
13117         (pp_base_get_prefix): New.
13118         * common.opt (fdiagnostics-show-caret): New option.
13119         * doc/invoke.texi (fdiagnostics-show-caret): Document it.
13121 2012-04-11  Richard Guenther  <rguenther@suse.de>
13123         PR rtl-optimization/52881
13124         * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
13126 2012-04-11  Richard Guenther  <rguenther@suse.de>
13128         PR tree-optimization/52912
13129         * tree-ssa-threadupdate.c (thread_block): Tell the cfg
13130         manipulation code we are threading through a loop header
13131         to an exit destination.
13133 2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13135         * tree.h (warn_if_unused_value): Move declaration from here.
13136         * stmt.c (warn_if_unused_value): Move definition from here.
13138 2012-04-10  Michael Matz  <matz@suse.de>
13140         * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
13141         grouped_stores.
13142         (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
13143         (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
13144         (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
13145         (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
13146         (vect_strided_store_supported): Rename to vect_grouped_store_supported.
13147         (vect_strided_load_supported): Rename to vect_grouped_load_supported.
13148         (vect_transform_strided_load): Rename to vect_transform_grouped_load.
13149         (vect_record_strided_load_vectors): Rename to
13150         vect_record_grouped_load_vectors.
13151         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
13152         Rename use of above macros.
13153         (vect_verify_datarefs_alignment): Ditto.
13154         (vector_alignment_reachable_p): Ditto.
13155         (vect_peeling_hash_get_lowest_cost): Ditto.
13156         (vect_enhance_data_refs_alignment): Ditto.
13157         (vect_analyze_group_access): Ditto and rename stride to groupsize.
13158         (vect_analyze_data_ref_access): Rename "strided" to "grouped".
13159         (vect_strided_store_supported): Rename to vect_grouped_store_supported.
13160         (vect_strided_load_supported): Rename to vect_grouped_load_supported.
13161         (vect_transform_strided_load): Rename to vect_transform_grouped_load.
13162         (vect_record_strided_load_vectors): Rename to
13163         vect_record_grouped_load_vectors.
13164         * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
13165         (destroy_loop_vec_info): Ditto.
13166         (vect_transform_loop): Ditto and rename strided_store to grouped_store.
13167         * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
13168         (vect_analyze_slp): Ditto.
13169         (new_bb_vec_info): Ditto.
13170         (destroy_bb_vec_info): Ditto.
13171         (vect_schedule_slp_instance): Ditto and rename strided_store to
13172         grouped_store.
13173         * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
13174         vect_cost_group_size.
13175         (vect_model_store_cost): Rename use of above macros and call
13176         to vect_cost_strided_group_size.
13177         (vect_model_load_cost): Ditto.
13178         (vectorizable_store): Ditto, rename strided_store to grouped_store
13179         and calls to renamed tree-vectorizer.h functions.
13180         (vectorizable_load): Ditto.
13181         (vect_transform_stmt): Rename use of above macros and strided_store
13182         to grouped_store.
13184 2012-04-10  Jan Hubicka  <jh@suse.cz>
13186         * cgraph.h: Remove misledaing comment on ipa-ref.h.
13187         (symtab_type): New enum.
13188         (symtab_node): New structure.
13189         (cgraph_node, varpool_node): Add symbol base type.
13190         (cgraph, varpool): New accestor functions.
13191         * cgraph.c (cgraph_create_node_1): Set symbol type.
13192         * varpool.c (varpool_node): Set symbol type.
13194 2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
13195             Richard Sandiford  <rdsandiford@googlemail.com>
13197         * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
13199 2012-04-10  Richard Guenther  <rguenther@suse.de>
13201         PR middle-end/52888
13202         * gimple-low.c (gimple_check_call_args): Properly account for
13203         compatible aggregate types.
13205 2012-04-10  Richard Guenther  <rguenther@suse.de>
13207         * toplev.h (tree_rest_of_compilation): Remove.
13208         * tree-optimize.c (tree_rest_of_compilation): Likewise.
13209         * cgraph.h (tree_rest_of_compilation): Declare.
13210         * tree-optimize.c (tree_rest_of_compilation): Move ...
13211         * cgraphunit.c (tree_rest_of_compilation): ... here.
13212         * cgraph.c (cgraph_add_new_function): Adjust.
13213         * Makefile.in (tree-optimize.o): Adjust.
13214         (cgraphunit.o): Likewise.
13216 2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
13218         PR tree-optimization/52870
13219         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
13220         presumed pattern statement is within the same loop or basic block.
13222 2012-04-10  Tristan Gingold  <gingold@adacore.com>
13224         * gengtype.c (main): Make uintptr_t a known type.
13226 2012-04-10  Richard Guenther  <rguenther@suse.de>
13228         * tree-pass.h (tree_lowering_passes): Remove.
13229         * tree-optimize.c (tree_lowering_passes): Remove.
13230         * cgraph.c (cgraph_add_new_function): Inline relevant parts
13231         of tree_lowering_passes, avoid redundant call of early local passes.
13232         * cgraphunit.c (cgraph_lower_function): Fold into ...
13233         (cgraph_analyze_function): ... its single caller.  Inline
13234         relevant parts of tree_lowering_passes.
13236 2012-04-09  H.J. Lu  <hongjiu.lu@intel.com>
13238         PR other/52777
13239         * config/pa/pa.opt: Remove SIO and GNU_LD.
13241 2012-04-09  Jan Hubicka  <jh@suse.cz>
13243         PR lto/52722
13244         PR lto/51765
13245         PR lto/52634
13246         * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
13247         boundary, add its target too.
13248         * lto.c (add_references_to_partition): Add also aliased nodes.
13249         (add_cgraph_node_to_partition,
13250         add_varpool_node_to_partition): Work on nodes, not functions/variables;
13251         when adding alias, add also the aliased object.
13253 2012-04-09  Uros Bizjak  <ubizjak@gmail.com>
13255         PR target/52883
13256         * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
13257         VOIDmode immediate operands.
13258         * config/i386/constraints.md (Wz): New constraint.
13259         * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
13261 2012-04-09  Eric Botcazou  <ebotcazou@adacore.com>
13263         PR target/52717
13264         * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
13265         the DECL generated for the special GOT helper.
13267 2012-04-09  Oleg Endo  <olegendo@gcc.gnu.org>
13269         * config/sh/constraints.md: Update list of constraints in
13270         comment block.
13271         (Sr0): Remove unused memory constraint.
13273 2012-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13275         * tree-pretty-print.h: Update comment.
13277 2012-04-08  Oleg Endo  <olegendo@gcc.gnu.org>
13279         * config/sh/sh.md: Use braced string notation where applicable.
13280         (*prefetch_i4, prefetch_m2a): Merge into ...
13281         (*prefetch): ... this new insn.
13283 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
13285         * config/sh/sh.h (high_life_started): Remove
13286         * config/sh/predicates.md (general_movdst_operand): Use
13287         'reload_in_progress' instead of 'high_life_started'.
13288         * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
13289         divsi_inv_fp): Likewise.
13291 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
13293         * config/sh/sh-protos.h (prepare_move_operands): Return void
13294         instead of int.
13295         * config/sh/sh.c (prepare_move_operands): Likewise.
13296         * config/sh/sh.md: Remove return value checks of prepare_move_operands.
13298 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
13300         * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
13301         general_movsrc_operand, general_movdst_operand, arith_reg_operand,
13302         fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
13303         logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
13304         commutative_float_operator, noncommutative_float_operator,
13305         sh_handle_pragma): Remove.
13307 2012-04-06  Sandra Loosemore  <sandra@codesourcery.com>
13309         * doc/invoke.texi:  Clean up Texinfo markup throughout the file.
13310         Use @option markup on command-line options.  Use @samp markup on
13311         literal keywords to options.  Use @code markup on code fragments.
13312         Use other markup in preference to quotation marks in the text.
13313         Add markup to some passages without any.
13315 2012-04-06  Mike Stump  <mikestump@comcast.net>
13317         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
13319 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
13321         * config/sh/sh.c (hi_const): Remove.
13322         (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
13323         of hi_const.
13325 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
13327         * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
13328         to bool.
13329         * config/sh/sh.c (sh_expand_t_scc): Likewise.
13330         * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
13331         calling sh_expand_t_scc.
13333 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
13335         * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
13336         nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
13337         sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
13338         reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
13339         sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
13340         sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
13341         check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
13342         sh2a_is_function_vector_call): Use bool as return type.
13343         (sh_pass_in_reg_p): Remove.
13344         * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
13345         flow_dependent_p, sh2a_function_vector_p, expand_block_move,
13346         expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
13347         sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
13348         sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
13349         sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
13350         fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
13351         sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
13352         sh_loads_bankedreg_p): Use bool as return type.
13353         (nonpic_symbol_mentioned_p): Use bool as return type.  Remove
13354         'register' modifier.
13356 2012-04-06  Matt Turner  <mattst88@gmail.com>
13358         * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
13360 2012-04-06  Eric Botcazou  <ebotcazou@adacore.com>
13362         * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
13363         of the destination isn't also a FP_REGS register.
13365 2012-04-05  Teresa Johnson  <tejohnson@google.com>
13366             H.J. Lu  <hongjiu.lu@intel.com>
13368         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
13369         * config/i386/i386.md (move immediate to memory peephole2):
13370         Add cases for HImode move when LCP stall avoidance is needed.
13371         * config/i386/i386.c (initial_ix86_tune_features): Initialize
13372         X86_TUNE_LCP_STALL entry.
13374 2012-04-05  Uros Bizjak  <ubizjak@gmail.com>
13376         PR target/52882
13377         * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
13378         CONST_INT operands, zero-extended with AND.
13380 2012-04-05  Oleg Endo  <olegendo@gcc.gnu.org>
13382         PR target/50751
13383         * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
13384         first argument instead of mode size.  Move displacement calculations
13385         to ...
13386         (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
13387         ... these new functions.
13388         (disp_adjust): Remove max_mov_disp field.
13389         (sh_legitimate_index_p): Use max_mov_insn_displacement and
13390         mov_insn_alignment_mask.
13391         (sh_address_cost): Use max_mov_insn_displacement.
13393 2012-04-05  Andrew Stubbs  <ams@codesourcery.com>
13395         * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
13396         (arch_enabled): Handle new arch types.
13397         (one_cmpldi2): Add NEON support.
13399 2012-04-05  Richard Guenther  <rguenther@suse.de>
13401         * gimple.c (walk_gimple_op): Compute val_only for the LHS
13402         of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
13403         (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
13404         * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
13405         ... here and make static.
13406         * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
13407         Remove.
13409 2012-04-05  Richard Guenther  <rguenther@suse.de>
13411         * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
13412         basic-block before removing it.
13414 2012-04-05  Richard Guenther  <rguenther@suse.de>
13416         * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
13417         version namespace as we release the freelist.
13419 2012-04-05  Richard Guenther  <rguenther@suse.de>
13421         * tree-nrv.c (tree_nrv): Release VDEFs.
13422         * tree-sra.c (sra_modify_constructor_assign): Likewise.
13423         (sra_modify_assign): Likewise.
13424         * tree-vect-stmts.c (vect_remove_stores): Likewise.
13425         * tree-vect-loop.c (vect_transform_loop): Likewise.
13426         * tree-ssa-dom.c (optimize_stmt): Likewise.
13427         * tree-vect-slp.c (vect_schedule_slp): Likewise.
13428         * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
13430 2012-04-05  Richard Guenther  <rguenther@suse.de>
13432         * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
13433         cleanup.
13434         * gimple.h (gsi_remove): Adjust.
13435         * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
13436         * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
13437         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
13438         * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
13439         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
13440         * tree-ssa-pre.c (eliminate): Likewise.
13442 2012-04-04  Mike Stump  <mikestump@comcast.net>
13444         * doc/rtl.texi (const_double): Document as sign-extending.
13445         * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
13446         * emit-rtl.c (immed_double_int_const): Refine to state the
13447         value is signed.
13448         * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
13449         CONST_DOUBLE integers.
13450         (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
13451         negative values are converted.  Fix conversions bigger than
13452         HOST_BITS_PER_WIDE_INT.
13453         (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
13454         (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
13455         * explow.c (plus_constant_mode): Add.
13456         (plus_constant): Implement with plus_constant_mode.
13457         * rtl.h (plus_constant_mode): Add.
13459 2012-04-04  Richard Guenther  <rguenther@suse.de>
13461         PR tree-optimization/52808
13462         * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
13463         * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
13465 2012-04-04  Tristan Gingold  <gingold@adacore.com>
13467         * expr.c (expand_expr_real_2): Handle larger sizetype in
13468         POINTER_PLUS_EXPR.
13470 2012-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
13472         * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
13473         to m2a-single instead of m2e.
13475 2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>
13477         * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
13478         Change type of BITOFFSET to signed.  Make sure the lower bound of
13479         the computed range is non-negative by adjusting OFFSET and BITPOS.
13480         (expand_assignment): Adjust call to get_bit_range.
13482 2012-04-03  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>
13484         * h8300/h8300.c (h8300_current_function_monitor_function_p):
13485         New function. Added to check monitor functions.
13486         (h8300_option_override): Modified to generate error/warning
13487         messages for invalid combinations of different command line
13488         options.
13489         * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
13490         save EXR on stack for monitor function in case of H8S target
13491         when "-mno-exr" is passed.
13492         * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
13493         Add prototype.
13494         * doc/invoke.texi: Document H8S options.
13496 2012-04-03  Tristan Gingold  <gingold@adacore.com>
13498         * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
13499         of gcc_AC_FUNC_MMAP_BLACKLIST.
13500         * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
13501         * Makefile.in (aclocal_deps): Add mmap.m4.
13502         * configure: Regenerate.
13503         * aclocal.m4: Regenerate.
13505 2012-04-03  Richard Guenther  <rguenther@suse.de>
13507         PR tree-optimization/52808
13508         * tracer.c (tail_duplicate): Return whether we have duplicated
13509         any block.
13510         (tracer): If we have duplicated any block, cleanup the CFG.
13511         * cfghooks.c (duplicate_block): If we duplicated a loop
13512         header but not its loop, destroy the loop because it now has
13513         multiple entries.
13514         * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
13515         the cfg manipulation routines we are not creating a multiple
13516         entry loop.
13518 2012-04-03  Tristan Gingold  <gingold@adacore.com>
13520         * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
13521         'byte' alignment.
13522         (vms_c_common_override_options): Allow parameterless variadic
13523         functions.
13525 2012-04-03  Jakub Jelinek  <jakub@redhat.com>
13527         PR tree-optimization/52835
13528         * tree-data-ref.c (build_rdg): Return NULL if
13529         compute_data_dependences_for_loop failed.
13531 2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>
13533         * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
13534         for REAL_CST as well.
13535         (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
13536         In the bitfield case, if the value is a REAL_CST, convert it first to
13537         an INTEGER_CST.
13539 2012-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13541         * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
13542         for --with-abi={x32|mx32} or --with-multilib-list=mx32.
13543         (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
13545         * config/i386/biarchx32.h: New.
13547 2012-04-02  Anatoly Sokolov  <aesok@post.ru>
13549         * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
13550         * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13551         (arm_preferred_reload_class): New function.
13553 2012-04-02  Richard Guenther  <rguenther@suse.de>
13555         PR tree-optimization/52756
13556         * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
13557         (thread_through_loop_header): After threading through the loop latch
13558         remove the split part from the loop and clear further threading
13559         opportunities that would create a multiple entry loop.
13561 2012-04-02  Richard Guenther  <rguenther@suse.de>
13563         PR rtl-optimization/52800
13564         * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
13565         CLEANUP_CFG_CHANGED.
13567 2012-04-02  Richard Guenther  <rguenther@suse.de>
13569         PR middle-end/52803
13570         * loop-init.c (gate_handle_loop2): Destroy loops here if
13571         we don't enter RTL loop optimizers.
13573 2012-04-02  Uros Bizjak  <ubizjak@gmail.com>
13575         Partially revert:
13576         2012-03-29  Richard Guenther  <rguenther@suse.de>
13578         * rtl.h (extended_count): Remove.
13579         * combine.c (extended_count): Remove.
13581 2012-04-02  Dodji Seketeli  <dodji@redhat.com>
13583         PR c++/40942
13584         * pt.c (more_specialized_fn):  Don't apply decay conversion to
13585         types of function parameters.
13587 2012-04-02  Tristan Gingold  <gingold@adacore.com>
13589         * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
13590         (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
13591         (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
13592         (ggc_pch_this_base): Use uintptr_t instead of size_t.
13594 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
13596         PR bootstrap/52784
13597         * config/i386/i386.c (ix86_option_override_internal): Don't
13598         check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
13600 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13602         * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
13603         (stmt_can_make_abnormal_goto): Use it.
13604         (is_ctrl_altering_stmt): Likewise.
13606 2012-03-30  Naveen H.S  <naveen.S@kpitcummins.com>
13607             Kaz Kojima  <kkojima@gcc.gnu.org>
13609         * config/sh/sh.c (push_regs): Skip banked registers when
13610         resbank attribute is specified.
13611         (sh_expand_epilogue): Likewise.
13613 2012-03-30  Richard Henderson  <rth@redhat.com>
13615         PR debug/52727
13616         * combine-stack-adj.c (prev_active_insn_bb): New.
13617         (next_active_insn_bb): New.
13618         (force_move_args_size_note): New.
13619         (combine_stack_adjustments_for_block): Use it.
13621 2012-03-30  Richard Henderson  <rth@redhat.com>
13623         * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
13624         (ix86_expand_vector_init_duplicate): Initialize it.
13625         (expand_vec_perm_palignr): Likewise.
13626         (ix86_expand_vec_perm_const): Likewise.
13627         (ix86_vectorize_vec_perm_const_ok): Likewise.
13628         (expand_vec_perm_blend): Use it.
13629         (expand_vec_perm_vpermil): Likewise.
13630         (expand_vec_perm_pshufb): Likewise.
13631         (expand_vec_perm_1): Likewise.
13632         (expand_vec_perm_pshuflw_pshufhw): Likewise.
13633         (expand_vec_perm_interleave2): Likewise.
13634         (expand_vec_perm_vpermq_perm_1): Likewise.
13635         (expand_vec_perm_vperm2f128): Likewise.
13636         (expand_vec_perm_interleave3): Likewise.
13637         (expand_vec_perm_vperm2f128_vblend): Likewise.
13638         (expand_vec_perm_vpshufb2_vpermq): Likewise.
13639         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
13640         (expand_vec_perm_broadcast): Likewise.
13641         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
13643 2012-03-30  Richard Henderson  <rth@redhat.com>
13645         * dwarf2out.c (gen_variable_die): Initialize off.
13647 2012-03-30  Tristan Gingold  <gingold@adacore.com>
13649         * config/vms/vms-f.c: New file.
13650         * config/vms/t-vms (vms-f.o): New rule.
13651         * config.gcc (*-*-*vms*): Define fortran_target_objs.
13653 2012-03-30  Richard Guenther  <rguenther@suse.de>
13655         PR tree-optimization/52754
13656         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
13657         propagate arbitrary addresses into really plain dereferences.
13659 2012-03-30  Richard Guenther <rguenther@suse.de>
13661         PR middle-end/52772
13662         * except.c (emit_to_new_bb_before): Move loop updating ...
13663         (dw2_build_landing_pads): ... here.  Use a proper block for
13664         querying the loop father.
13666 2012-03-30  Tristan Gingold  <gingold@adacore.com>
13668         * config/ia64/ia64.c (ia64_section_type_flags): Remove
13669         common_object attribute handling.
13670         (SECTION_VMS_OVERLAY): Remove
13671         (ia64_vms_common_object_attribute): Replace abort with an assert.
13672         Do not set DECL_SECTION_NAME.
13673         (ia64_vms_output_aligned_decl_common): Handle common_object
13674         attribute.
13675         (ia64_vms_elf_asm_named_section): Remove.
13676         * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
13678 2012-03-30  Richard Guenther  <rguenther@suse.de>
13680         PR middle-end/52786
13681         * double-int.c (rshift_double): Remove not needed cast.
13683 2012-03-30  Richard Guenther  <rguenther@suse.de>
13685         * tree-affine.h (print_aff): Remove.
13686         * tree-affine.c (print_aff): Make static.
13687         * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
13688         (get_references_in_stmt): Likewise.
13689         (print_direction_vector): Likewise.
13690         (print_dir_vectors): Likewise.
13691         (print_dist_vectors): Likewise.
13692         (dump_subscript): Likewise.
13693         (dump_ddrs): Likewise.
13694         (dump_dist_dir_vectors): Likewise.
13695         (dump_data_references): Likewise.
13696         (dump_data_dependence_relation): Likewise.
13697         (dump_data_dependence_direction): Likewise.
13698         (dump_rdg_vertex): Likewise.
13699         (dump_rdg_component): Likewise.
13700         (debug_ddrs): Declare.
13701         (struct data_ref_loc_d): Move ...
13702         * tree-data-ref.c (struct data_ref_loc_d): ... here.
13703         (get_references_in_stmt): Make static.
13704         (dump_data_references): Likewise.
13705         (dump_subscript): Likewise.
13706         (print_direction_vector): Likewise.
13707         (print_dir_vectors): Likewise.
13708         (print_dist_vectors): Likewise.
13709         (dump_data_dependence_relation): Likewise.
13710         (dump_dist_dir_vectors): Likewise.
13711         (dump_ddrs): Likewise.
13712         (dump_rdg_vertex): Likewise.
13713         (dump_rdg_component): Likewise.
13714         (debug_ddrs): New function.
13715         (access_matrix_get_index_for_parameter): Remove.
13717 2012-03-30  Tristan Gingold  <gingold@adacore.com>
13719         * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
13720         (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
13721         (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
13722         (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
13723         (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
13724         (vms_patch_builtins): Handle new flags
13725         * config/vms/vms-crtlmap.map: Completed using nm on
13726         c and math system libraries.
13727         * config/vms/make-crtlmap.awk: Handle any number of flags.
13729 2012-03-30  Martin Jambor  <mjambor@suse.cz>
13731         * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
13732         is a builtin_stack_save in a dominating BB.
13734 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
13736         * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
13737         crossing 128bit lane boundary.
13739 2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13741         * ira-color.c (setup_left_conflict_sizes_p): Process all
13742         conflicting objects.
13744 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
13746         PR tree-optimization/52760
13747         * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
13748         shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
13750 2012-03-29  Richard Guenther  <rguenther@suse.de>
13752         * cgraph.h (cgraph_materialize_all_clones): Remove.
13753         (reset_inline_failed): Likewise.
13754         * cgraphunit.c (cgraph_materialize_all_clones): Make static.
13755         * cgraphbuild.c (reset_inline_failed): Remove.
13756         * rtl.h (cse_main): Remove.
13757         (extended_count): Likewise.
13758         * cse.c (dump_class): Mark as DEBUG_FUNCTION.
13759         (cse_main): Make static.
13760         * combine.c (extended_count): Remove.
13761         (dump_combine_stats): Mark as DEBUG_FUNCTION.
13762         * basic-block.h (reorder_basic_blocks): Remove.
13763         * bb-reorder.c (reorder_basic_blocks): Make static.
13764         * Makefile.in (dse.o): Remove dse.h dependency.
13765         * dse.h: Remove.
13766         * dse.c (gate_dse): Remove.
13767         (clear_alias_mode_eq): Likewise.
13768         (clear_alias_mode_hash): Likewise.
13769         (dse_record_singleton_alias_set): Likewise.
13770         (dse_invalidate_singleton_alias_set): Likewise.
13772 2012-03-29  H.J. Lu  <hongjiu.lu@intel.com>
13774         * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
13775         crtbegin_so%O%s for -shared.
13776         (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
13778 2012-03-29  Richard Guenther  <rguenther@suse.de>
13780         * tree-flow.h (struct pre_expr_d): Remove forward declaration.
13781         (add_to_value): Remove.
13782         (print_value_expressions): Likewise.
13783         * tree-ssa-pre.c (add_to_value): Make static.
13784         (print_value_expressions): Likewise.
13785         * gimple.h (gimple_adjust_this_by_delta): Remove.
13786         * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
13788 2012-03-29  Richard Guenther  <rguenther@suse.de>
13790         PR middle-end/50708
13791         * double-int.h (rshift_double): Remove.
13792         * double-int.c (lshift_double): Use absu_hwi to make count positive.
13793         (rshift_double): Make static, take unsigned count argument,
13794         remove handling of negative count argument.
13795         (double_int_rshift): Dispatch to lshift_double.
13797 2012-03-28  H.J. Lu  <hongjiu.lu@intel.com>
13799         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
13800         OPTION_MASK_ABI_64.
13802         * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
13803         (SPEC_X32): Likewise.
13804         (MULTILIB_DEFAULTS): Likewise.
13806         * config/i386/i386.c (isa_opts): Remove -m64.
13807         (ix86_target_string): Properly handle -m32/-m64/-mx32.
13808         (ix86_option_override_internal): Properly
13809         set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
13810         handle -m32, -m64 and -mx32.
13812         * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
13813         with OPTION_ABI_X32.  Moved after TARGET_LP64.
13814         (TARGET_LP64): Changed to OPTION_ABI_64.
13816         * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
13817         (mx32): Replace ISA_X32 with ABI_X32.
13819 2012-03-28  Eric Botcazou  <ebotcazou@adacore.com>
13821         * tree.c (tree_size) <VECTOR_CST>: New case.
13823 2012-03-28  Uros Bizjak  <ubizjak@gmail.com>
13825         * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
13826         (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
13828 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
13830         PR middle-end/52691
13831         * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
13832         __builtin_va_start to __builtin_next_arg if the latter is
13833         builtin_decl_explicit_p rather than when it is not.
13835         PR middle-end/52750
13836         * tree-vect-generic.c (vector_element): Perform multiplication
13837         for pos in bitsizetype type instead of idx type.
13839 2012-03-28  Richard Guenther  <rguenther@suse.de>
13841         * loop-init.c (loop_optimizer_init): If loops are preserved
13842         perform incremental initialization of required loop features.
13843         (loop_optimizer_finalize): If loops are to be preserved only
13844         clean up optional loop features.
13845         (rtl_loop_done): Forcefully free loops here.
13846         * cgraph.c (cgraph_release_function_body): Forcefully free loops.
13847         * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
13848         to existing loops.
13849         (construct_init_block): Likewise.
13850         (construct_exit_block): Likewise.
13851         (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state.  Cleanup
13852         the CFG after expanding.
13853         * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
13854         If we needed to calculate them, free them afterwards.
13855         * tree-pass.h (PROP_loops): New define.
13856         * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
13857         * basic-block.h (CLEANUP_CFG_CHANGED): New.
13858         * cfgcleanup.c (merge_blocks_move): Protect loop latches.
13859         (cleanup_cfg): If we did something and have loops around, fix them up.
13860         * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
13861         with CLEANUP_CFG_CHANGED.
13862         * cfghooks.c (merge_blocks): If we merge a loop header into
13863         its predecessor, update the loop structure.
13864         (duplicate_block): If we copy a loop latch, adjust loop state
13865         to note we may have multiple latches.
13866         (delete_basic_block): Mark loops for fixup if we remove a loop.
13867         * cfganal.c (forwarder_block_p): Protect loop latches, headers
13868         and preheaders.
13869         * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
13870         (cfg_layout_can_merge_blocks_p): Likewise.
13871         * cprop.c (bypass_block): If we create a loop with multiple
13872         entries, mark it for removal.
13873         * except.c (emit_to_new_bb_before): Add the new basic-block
13874         to existing loops.
13875         * tree-eh.c (lower_resx): Likewise.
13876         * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
13877         (expand_omp_taskreg): Likewise.
13878         * tree-inline.c (initialize_cfun): Likewise.
13879         * tree-mudflap.c (add_bb_to_loop): Prototype.
13880         (mf_build_check_statement_for): Properly add new basic-blocks
13881         to existing loops.
13882         * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
13883         if we remove a loop.
13884         (thread_through_loop_header): Likewise.
13885         * trans-mem.c (tm_log_emit_save_or_restores): Properly add
13886         new basic-blocks to existing loops.
13887         (expand_transaction): Likewise.
13888         * Makefile.in (except.o): Add $(CFGLOOP_H).
13889         (expr.o): Likewise.
13890         (cgraph.o): Likewise.
13891         (cprop.o): Likewise.
13892         (cfgexpand.o): Likewise.
13893         (cfganal.o): Likewise.
13894         (trans-mem.o): Likewise.
13895         (tree-eh.o): Likewise.
13897 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
13899         PR target/52692
13900         * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
13901         (avr_builtin_decl): New static function.
13902         (struct avr_builtin_description, avr_bdesc): Move up.
13903         Add GTY marker. Add field fndecl. Remove redundant field id.
13904         (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
13905         (avr_expand_builtin): Code cleanup because .id is removed.
13907 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
13909         PR target/52737
13910         * config.gcc (tm_file): Remove avr/multilib.h.
13912         * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
13914         * config/avr/genmultilib.awk: Remove code to generate multilib.h.
13915         (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
13916         * config/avr/t-avr: Remove generation of multilib.h.
13917         * config/avr/t-multilib: Regenerate.
13918         * config/avr/multilib.h: Remove.
13919         * config/avr/avr.opt (-msp8): New option.
13920         (avr_sp8): New variable.
13921         * config/avr/driver-avr.c (avr_device_to_sp8): New function.
13922         * config/avr/avr.h (AVR_HAVE_SPH): New define.
13923         (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
13924         (avr_device_to_sp8): New prototype.
13925         (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
13926         (DRIVER_SELF_SPECS): New define.
13927         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
13928         __AVR_SP8__, __AVR_HAVE_SPH__.
13929         * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
13930         AVR_HAVE_8BIT_SP to decide if SP_H is present.
13931         (avr_file_start): Ditto.
13933 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
13935         PR target/52736
13936         * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
13937         instead of 8 in adjust_address.
13939 2012-03-27  Aurelien Buhrig  <aurelien.buhrig.gcc@gmail.com>
13941         PR middle-end/51893
13942         * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
13943         targets.
13945 2012-03-27  Oleg Endo  <olegendo@gcc.gnu.org>
13947         PR target/50751
13948         * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
13949         Rearrange conditional logic.  Move displacement address calculations
13950         to ...
13951         (sh_find_mov_disp_adjust): ... this new function.
13953 2012-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13955         * config/arm/arm.opt (mapcs): Remove MaskExists.
13956         * config/cris/linux.opt (mno-gotplt): Likewise.
13957         * config/i386/i386.opt (mhard-float): Likewise.
13958         (msse4): Likewise.
13959         (mno-sse4): Likewise.
13960         * config/m68k/m68k.opt (mhard-float): Likewise.
13961         * config/mep/mep.op (mcop32): Likewise.
13962         * config/pa/pa-hpux.opt (msio): Likewise.
13963         * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
13964         * config/picochip/picochip.opt (mlittle): Likewise.
13965         * config/sh/sh.opt (mrenesas): Likewise.
13966         * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
13967         * config/sparc/sparc.opt (mhard-float): Likewise.
13968         * config/v850/v850.opt (mv850es): Likewise.
13969         * config/vax/vax.opt (mg-float): Likewise.
13971 2012-03-27  Martin Jambor  <mjambor@suse.cz>
13973         PR middle-end/52693
13974         * tree-sra.c (sra_modify_assign): Do not call
13975         load_assign_lhs_subreplacements when working with an unscalarizable
13976         region.
13978 2012-03-27  Uros Bizjak  <ubizjak@gmail.com>
13980         PR target/52698
13981         * config/i386/i386-protos.h (ix86_legitimize_reload_address):
13982         New prototype.
13983         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
13984         * config/i386/i386.c: Include reload.h.
13985         (ix86_legitimize_reload_address): New function.
13987 2012-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13989         * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
13990         hasn't been allocated.  Define a target macro for Mask and
13991         InverseMask if it hasn't been defined.  Remove MaskExists handling.
13993         * doc/options.texi: Remove MaskExists.
13995 2012-03-27  Chung-Lin Tang  <cltang@codesourcery.com>
13997         PR target/52667
13998         * config/sh/sh.c (find_barrier): Add equality check of last_got
13999         to avoid going above orig insn. Update comments.
14001 2012-03-27  Richard Guenther  <rguenther@suse.de>
14003         PR middle-end/52720
14004         * fold-const.c (try_move_mult_to_index): Handle &x.array more
14005         explicitely.
14007 2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>
14009         * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
14010         of a unit before computing the offset in units.
14011         * expr.c (get_bit_range): Return the null range if the enclosing record
14012         is part of a larger bit field.
14014 2012-03-27  Tristan Gingold  <gingold@adacore.com>
14016         * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
14017         * config/ia64/ia64.md: Remove mode in template.
14018         Sign extend operand in expand_simple_binop.
14019         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
14020         CASE_VECTOR_MODE instead of TARGET_ILP32.
14021         (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
14023 2012-03-26  Steven Bosscher  <steven@gcc.gnu.org>
14025         * varasm.c (assemble_external): #if 0 out the new assert from the
14026         previous commit, it breaks the Java and Go front ends.
14028 2012-03-26  Steven Bosscher  <steven@gcc.gnu.org>
14030         * toplev.c (check_global_declaration_1): Do not call assemble_external.
14031         * expr.c (emit_block_move_libcall_fn): Likewise.
14032         (clear_storage_libcall_fn): Likewise.
14033         (expand_expr_addr_expr_1): Likewise.
14034         (expand_expr_real_1): Likewise.
14035         * calls.c (rtx_for_function_call): Likewise.
14037         * varasm.c (assemble_external): Assert this function is only called
14038         during or after expanding to RTL.
14040 2012-03-26  Martin Jambor  <mjambor@suse.cz>
14042         PR tree-optimization/50052
14043         * tree-sra.c (tree_non_aligned_mem_p): Removed.
14044         (tree_non_aligned_mem_for_access_p): Likewise.
14045         (build_accesses_from_assign): Removed strict alignment requirements
14046         checks.
14047         (access_precludes_ipa_sra_p): Likewise.
14049 2012-03-26  Richard Guenther  <rguenther@suse.de>
14051         PR tree-optimization/52701
14052         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
14053         compute and set the evolution part of PHI nodes.
14055 2012-03-26  Richard Guenther  <rguenther@suse.de>
14057         PR tree-optimization/52721
14058         * tree-vect-stmts.c (vect_init_vector): Handle scalars.
14060 2012-03-26  Ulrich Weigand  <ulrich.weigand@linaro.org>
14062         PR tree-optimization/52686
14063         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
14064         WIDEN_LSHIFT_EXPR.
14066 2012-03-26  Tristan Gingold  <gingold@adacore.com>
14068         * config/alpha/vms.h (LINK_SPEC): Simplify.
14069         (STARTFILE_SPEC): Remove -mvms-return-codes handling.
14070         (NAME__MAIN, SYMBOL__MAIN): Remove.
14071         (VMS_DEBUG_MAIN_POINTER): Remove.
14072         * config/ia64/vms.h: Likewise.
14073         * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
14074         code to vms.c.  Call vms_start_function.
14075         * config/ia64/ia64.c (ia64_start_function): Likewise.
14076         * config/vms/vms-protos.h (vms_start_function): Declare.
14077         * config/vms/vms.c (vms_start_function): New function.
14078         * config/vms/vms.h (MATH_LIBRARY): Define.
14079         (VMS_DEBUG_MAIN_POINTER): Define.
14081 2012-03-26  Eric Botcazou  <ebotcazou@adacore.com>
14083         PR rtl-optimization/52629
14084         * reload1.c (count_pseudo): Short-circuit common case.
14085         (count_spilled_pseudo): Return early for pseudos without hard regs.
14086         Assert that the pseudo has got a hard reg before manipulating it.
14088 2012-03-24  Jan Hubicka  <jh@suse.cz>
14090         PR lto/51663
14091         * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
14092         (decide_is_variable_needed): Do not handle toplevel reorder here.
14093         * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
14094         * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
14095         even at -O0.
14097 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
14099         * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
14100         and str_bitsize instead of more convoluted expressions.
14102 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
14104         PR target/52610
14105         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
14107 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
14109         PR target/52656
14110         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
14112 2012-03-23  Martin Jambor  <mjambor@suse.cz>
14114         * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
14116 2012-03-23  Richard Guenther  <rguenther@suse.de>
14118         PR tree-optimization/52678
14119         * tree-vectorizer.h (struct _stmt_vec_info): Add
14120         loop_phi_evolution_part member.
14121         (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
14122         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
14123         STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
14124         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
14125         Use the cached evolution part and the PHI nodes value from
14126         the loop preheader edge instead of re-analyzing the evolution.
14128 2012-03-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
14130         * config/mips/mips-tables.opt: Update.
14131         * config/mips/mips.md (processor): Add xlp.
14132         * config/mips/mips-cpus.def: Add xlp.
14133         * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
14134         5KF for now.
14135         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
14136         * doc/invoke.texi: Mention XLP.
14138 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
14140         PR middle-end/52547
14141         * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
14142         on any new_local_var_chain vars declared during recursing on
14143         GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
14145 2012-03-22  Uros Bizjak  <ubizjak@gmail.com>
14147         * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
14148         (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
14149         (ASM_OUTPUT_LOCAL): Ditto.
14150         (ASM_OUTPUT_COMMON): Remove.
14151         * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
14152         * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
14154 2012-03-22  Jan Hubicka  <jh@suse.cz>
14156         PR middle-end/51737
14157         * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
14158         parameter.
14159         * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
14160         * ipa-inline-transform.c (save_inline_function_body): Remove
14161         copied clone if needed.
14162         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
14164 2012-03-22  Richard Guenther  <rguenther@suse.de>
14166         PR middle-end/52666
14167         * fold-const.c (fold_ternary_loc): Fix typo.
14169 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
14171         PR target/52496
14172         * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
14173         (unspecv): Add UNSPECV_MEMORY_BARRIER.
14174         (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
14175         (delay_cycles_1, delay_cycles_2): Ditto.
14176         (delay_cycles_3, delay_cycles_4): Ditto.
14177         (nopv, *nopv): Ditto.
14178         (sleep, *sleep): Ditto.
14179         (wdr, *wdr): Ditto.
14181 2012-03-22  Richard Guenther  <rguenther@suse.de>
14183         PR tree-optimization/52548
14184         * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
14185         because of clobbers.
14186         (prune_clobbered_mems): New function.
14187         (compute_antic_aux): Use it to prune ANTIC_OUT.
14188         (compute_partial_antic_aux): Use it to prune PA_IN.
14189         (compute_avail): Only insert expressions into EXP_GEN that are not
14190         invalidated when translated up to the beginning of the block.
14192 2012-03-22  Richard Guenther  <rguenther@suse.de>
14194         PR tree-optimization/52638
14195         * tree-vect-stmts.c (vect_init_vector_1): New function, split
14196         out from ...
14197         (vect_init_vector): ... here.  Handle scalar vector inits.
14198         (vect_get_vec_def_for_operand): Adjust.
14199         (vectorizable_load): Likewise.
14201 2012-03-22  Uros Bizjak  <ubizjak@gmail.com>
14203         * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
14204         (alpha*-*-freebsd*): Ditto.
14205         (alpha*-*-netbsd*): Ditto.
14206         (alpha*-*-openbsd*): Ditto.
14207         * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
14208         (DWARF2_DEBUGGING_INFO): Remove.
14209         (PREFERRED_DEBUGGING_TYPE): Remove.
14210         (ASM_FINAL_SPEC): Remove.
14211         (IDENT_ASM_OP): Remove.
14212         (ASM_OUTPUT_IDENT): Remove.
14213         (SKIP_ASM_OP): Remove.
14214         (ASM_OUTPUT_SKIP): Remove.
14215         (ALIGN_ASM_OP): Remove.
14216         (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
14217         (ASM_OUTPUT_CASE_LABEL): Remove.
14218         (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
14219         (COMMON_ASM_OP): Remove.
14220         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
14221         (ASCII_DATA_ASM_OP): Remove.
14222         (READONLY_DATA_SECTION_ASM_OP): Remove.
14223         (INIT_SECTION_ASM_OP): Remove.
14224         (FINI_SECTION_ASM_OP): Remove.
14225         (ASM_SECTION_START_OP): Remove.
14226         (ASM_OUTPUT_SECTION_START_FILE): Remove.
14227         (TARGET_ASM_NAMED_SECTION): Remove.
14228         (TARGET_ASM_SELECT_SECTION): Remove.
14229         (MAKE_DECL_ONE_ONLY): Remove.
14230         (TYPE_ASM_OP): Remove.
14231         (SIZE_ASM_OP): Remove.
14232         (ASM_WEAKEN_LABEL): Remove.
14233         (TYPE_OPERAND_FMT): Remove.
14234         (ASM_DECLARE_RESULT): Remove.
14235         (ASM_DECLARE_OBJECT_NAME): Remove.
14236         (ASM_FINISH_DECLARE_OBJECT): Remove.
14237         (ELF_ASCII_ESCAPES): Remove.
14238         (ELF_STRING_LIMIT): Remove.
14239         (STRING_ASM_OP): Remove.
14240         (ASM_OUTPUT_EXTERNAL): Remove.
14241         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
14242         * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
14243         before define.
14244         (ASM_DECLARE_FUNCTION_NAME): Ditto.
14245         (ASM_DECLARE_FUNCTION_SIZE): Ditto.
14246         (ASM_GENERATE_INTERNAL_LABEL): Ditto.
14247         (ASM_OUTPUT_SKIP): Ditto.
14248         (READONLY_DATA_SECTION_ASM_OP): Remove.
14249         (USER_LABEL_PREFIX): Remove.
14250         (ASM_OUTPUT_ASCII): Remove.
14251         (ASM_OUTPUT_CASE_LABEL): Remove.
14252         (NO_DOLLAR_IN_LABEL): Undefine.
14254 2012-03-22  Richard Guenther  <rguenther@suse.de>
14256         PR tree-optimization/52459
14257         * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
14258         PHI insertion for calls.
14260 2012-03-21  Steven Bosscher  <steven@gcc.gnu.org>
14262         * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
14263         find_sets_in_insn, canonicalize_insn): Split out from ...
14264         (cse_insn): ... here.
14265         (invalidate_from_clobbers): Take an insn instead of the pattern.
14267 2012-03-21  Oleg Endo  <olegendo@gcc.gnu.org>
14269         PR target/52479
14270         * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
14271         * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
14272         * config/sh/sh.md (sindf2, cosdf2): Remove.
14274 2012-03-21  Kaz Kojima  <kkojima@gcc.gnu.org>
14276         PR target/52642
14277         * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
14278         prologue for unwinder and profiler.
14280 2012-03-21  Andreas Tobler  <andreast@fgznet.ch>
14282         * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
14283         Introduce emul_name to select the right linker emulation for
14284         powerpc64-*-freebsd*.
14285         * configure: Regenerate.
14286         * config.gcc: Add bits to support powerpc64-*-freebsd*.
14287         * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
14288         * config/rs6000/freebsd64.h: New file.
14289         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
14290         POWERPC_FREEBSD.
14291         (rs6000_savres_strategy): Likewise.
14292         (rs6000_savres_routine_name): Likewise.
14293         (rs6000_elf_file_end): Likewise.
14294         * config/rs6000/t-freebsd64: New file.
14295         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
14296         rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
14298         * config/rs6000/freebsd64.h: Remove duplicated entries from last
14299         commit.
14300         * config/rs6000/t-freebsd64: Likewise.
14302 2012-03-21  Georg-Johann Lay  <avr@gjlay.de>
14304         PR rtl-optimization/52543
14305         PR target/52461
14306         * config/avr/avr-protos.h (avr_load_lpm): New prototype.
14307         * config/avr/avr.c (avr_mode_dependent_address_p): New function.
14308         (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
14309         (avr_load_libgcc_p): Restrict to __flash loads.
14310         (avr_out_lpm): Only handle 1-byte loads from __flash.
14311         (avr_load_lpm): New function.
14312         (avr_find_unused_d_reg): Remove.
14313         (avr_out_lpm_no_lpmx): Remove.
14314         (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
14315         * config/avr/avr.md (unspec): Add UNSPEC_LPM.
14316         (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
14317         (load_<mode>, load_<mode>_clobber): New insns.
14318         (mov<mode>): For multi-byte move from non-generic
14319         16-bit address spaces: Expand to load_<mode> resp.
14320         load_<mode>_clobber.
14321         (load<mode>_libgcc): Remove expander.
14322         (split-lpmx): Remove split.
14324 2012-03-21  Richard Earnshaw  <rearnsha@arm.com>
14326         * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
14327         * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
14328         All callers changed.
14329         (Fixed_core_reg): New feature.
14330         (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg.  Allow fmrrd in
14331         disassembly.
14332         * neon-testgen.ml: Handle Fixed_core_reg.
14334 2012-03-21  Andrew Stubbs  <ams@codesourcery.com>
14336         * config/arm/arm.c (thumb2_reorg): Add complete support
14337         for 16-bit instructions.
14338         * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
14340 2012-03-21  Richard Guenther  <rguenther@suse.de>
14342         PR tree-optimizer/52636
14343         * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
14344         to the appropriate type.
14346 2012-03-21  Richard Guenther  <rguenther@suse.de>
14348         * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
14349         dependencies.
14350         * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
14351         pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
14352         * passes.c (init_optimization_passes): Remove pass_init_function,
14353         pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
14354         * tree-pass.h (pass_init_function): Remove.
14355         (pass_jump): Remove.
14356         (pass_initial_value_sets): Remove.
14357         (pass_unshare_all_rtl): Remove.
14358         * integrate.c (pass_initial_value_sets): Remove.
14359         * emit-rtl.c (pass_unshare_all_rtl): Remove.
14360         * tree.h (init_function_for_compilation): Remove.
14361         * function.c (init_function_for_compilation): Remove.
14362         (pass_init_function): Remove.
14363         * cfgcleanup.c (rest_of_handle_jump): Remove.
14364         (pass_jump): Remove.
14366 2012-03-20  Jason Merrill  <jason@redhat.com>
14368         * tree-streamer-in.c (streamer_alloc_tree): Call
14369         ggc_alloc_zone_cleared_tree_node instead of
14370         ggc_alloc_zone_cleared_tree_node_stat.
14372 2012-03-20  Jonathan Wakely  <jwakely.gcc@gmail.com>
14374         * doc/extend.texi (Template Instantiation): Remove anachronisms.
14376 2012-03-20  Jakub Jelinek  <jakub@redhat.com>
14378         PR target/52607
14379         * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
14380         (ix86_expand_vec_perm_const_1): Call it.
14382         * config/i386/i386.c (vselect_insn): New variable.
14383         (init_vselect_insn): New function.
14384         (expand_vselect, expand_vselect_insn): Add testing_p argument.
14385         Call init_vselect_insn if vselect_insn is NULL.  Adjust
14386         PATTERN (vselect_insn), instead of creating a new insn each time,
14387         only emit a copy of it if not testing and recog has been successful.
14388         (expand_vec_perm_pshufb, expand_vec_perm_1,
14389         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
14390         callers.
14392         PR target/52607
14393         * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
14394         ("enabled" attribute): Handle avx2 and noavx2 isas.
14395         * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
14396         New insns.
14397         (vec_dup<mode>): Add avx2 =x,x alternative.
14398         (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
14399         (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
14400         For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
14401         * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
14402         for V8SFmode.
14403         (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
14404         if possible, handle also V8SFmode.
14406 2012-03-20  Richard Earnshaw  <rearnsha@arm.com>
14408         * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
14409         * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
14410         reg_or_zero_operand predicate.
14411         (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
14413 2012-03-20  Jakub Jelinek  <jakub@redhat.com>
14415         * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
14416         If operand isn't UNSPEC, return 0.
14418 2012-03-20  Richard Guenther  <rguenther@suse.de>
14420         * tree-pass.h (pass_rtl_eh): Remove.
14421         * except.c (gate_handle_eh): Likewise.
14422         (rest_of_handle_eh): Likewise.
14423         (pass_rtl_eh): Likewise.
14424         (finish_eh_generation): Export.
14425         * except.h (finish_eh_generation): Declare.
14426         * passes.c (init_optimization_passes): Remove pass_rtl_eh.
14427         * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
14428         after expanding stack alignment.  Instead of compacting blocks
14429         call cleanup_cfg.
14431 2012-03-20  Richard Guenther  <rguenther@suse.de>
14433         * stor-layout.c (finish_bitfield_representative): Fallback
14434         to conservative maximum size if the padding up to the next
14435         field cannot be computed as a constant.
14436         (finish_bitfield_layout): If we cannot compute the distance
14437         between the start of the bitfield representative and the
14438         bitfield member start a new representative.
14439         * expr.c (get_bit_range): The distance between the start of
14440         the bitfield representative and the bitfield member is zero
14441         if the field offsets are not constants.
14443 2012-03-20  Tristan Gingold  <gingold@adacore.com>
14445         * tree.h (enum size_type_kind): Add stk_ prefix to constants,
14446         convert in lowercase.
14447         (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
14448         (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
14449         * stor-layout.c (sizetype_tab): Adjust.
14450         (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
14451         * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
14452         instead of type_kind_last.
14453         * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
14454         instead of size_int_kind.
14455         * doc/tm.texi.in (Type Layout): Document SIZETYPE.
14456         * doc/tm.texi: Regenerate.
14457         * defaults.h (SIZETYPE): Provide a default value.
14458         * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
14459         (SIZETYPE): Define.
14461 2012-03-20  Oleg Endo  <olegendo@gcc.gnu.org>
14463         * config/sh/sh.md: Use braced string notation where applicable.
14465 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
14467         * config/i386/i386.md (allocate_stack): Simplify.
14469 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
14471         * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
14472         copy_to_mode_reg (Pmode, ...).
14473         (expand_builtin_frame_address): Ditto.
14474         * expr.c (emit_block_move_via_libcall): Ditto.
14475         (set_storage_via_libcall): Ditto.
14477         * config/i386/i386.c (ix86_expand_movmem): Ditto.
14478         (ix86_expand_setmem): Ditto.
14479         (ix86_trampoline_init): DItto.
14480         * config/i386/i386.md (cmpstrnsi): Ditto.
14482 2012-03-19  Sandra Loosemore  <sandra@codesourcery.com>
14484         * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
14485         * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
14486         * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
14487         (SH Options): Likewise.
14489 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
14491         * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
14492         Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
14493         (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
14494         DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
14495         (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
14497         Revert:
14498         2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
14500         * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
14501         * config/i386/i386.c (ix86_decompose_address): Use
14502         TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
14503         (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
14504         thread pointer to a register.
14506         Revert:
14507         2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>
14509         * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
14510         if Pmode != word_mode.
14511         (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
14512         Pmode == SImode for TARGET_X32.
14514         * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
14515         (tls_initial_exec_x32): Likewise.
14517 2012-03-19  Oleg Endo  <olegendo@gcc.gnu.org>
14519         PR target/50751
14520         * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
14521         DISP_ADDR_OFFSET): New macros.
14522         * config/sh/sh.c (sh_address_cost): Add SH2A special case.
14523         (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
14524         (sh_legitimize_address): Add QImode displacement handling.
14525         (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
14526         vector subregs.
14527         (sh_secondary_reload): Add QImode displacement handling.
14528         * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
14529         * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
14530         * config/sh/sh.md (extendqisi2): Remove constraints from expander.
14531         (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
14532         to register operands only.
14533         (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
14534         (extendqihi2): Change insn to expander.
14535         (*extendqihi2_compact_reg): New insn.
14536         (movqi_i, movqi): Replace with ...
14537         (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
14538         *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
14539         Add new peepholes for QImode displacement addressing.
14541 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
14543         PR c++/14710
14544         * doc/invoke.texi: Document -Wuseless-cast.
14546 2012-03-19  Eric Botcazou  <ebotcazou@adacore.com>
14548         * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
14549         * tree.h (handled_component_p): Reorder cases.
14550         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
14551         not initialize unsignedp.
14552         (loc_list_from_tree): Likewise.
14553         (fortran_common): Likewise.
14554         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
14556 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
14558         * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
14559         mode consistently.  Use ix86_gen_add3.  Assert that Pmode == DImode.
14560         (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
14561         (ix86_split_long_move): Ditto.
14562         (legitimize_tls_address): Use ix86_gen_sub3.
14563         (construct_plt_address): Assert that Pmode == DImode.
14565 2012-03-18  Uros Bizjak  <ubizjak@gmail.com>
14567         * config/i386/i386.md: Remove empty predicates and/or constraints.
14568         * config/i386/sync.md: Ditto.
14569         * config/i386/sse.md: Ditto.
14570         * config/i386/mmx.md: Ditto.
14571         * config/i386/pentium.md: Ditto.
14572         * config/i386/athlon.md: Ditto.
14574 2012-03-16  Richard Guenther  <rguenther@suse.de>
14576         PR tree-optimization/52603
14577         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
14578         comment.
14580         Revert
14581         2012-03-14  Richard Guenther  <rguenther@suse.de>
14583         PR tree-optimization/52571
14584         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
14585         flag_section_anchors check ...
14586         (vect_can_force_dr_alignment_p): ... here.
14588 2012-03-16  Martin Jambor  <mjambor@suse.cz>
14590         * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
14591         memory through MEM_REFs by calling extract_bit_field.
14593 2012-03-16  Richard Guenther  <rguenther@suse.de>
14595         * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
14596         and REFERENCE_TYPE interpretations.
14597         (can_native_interpret_type_p): New function.
14598         (fold_ternary_loc): Use native encode/interpret to fold
14599         BIT_FIELD_REFs of constants.
14601 2012-03-16  Richard Guenther  <rguenther@suse.de>
14603         PR middle-end/52584
14604         * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
14605         of vector constants and constructors.
14607 2012-03-16  Richard Guenther  <rguenther@suse.de>
14609         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
14610         VIEW_CONVERT_EXPR to convert constants.
14611         (vect_is_simple_use): Treat all constants as vec_constant_def.
14613 2012-03-16  Richard Guenther  <rguenther@suse.de>
14614             Kai Tietz  <ktietz@redhat.com>
14616         PR middle-end/48814
14617         * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
14618         side-effects completely in the pre-queue and use a temporary
14619         for the result.
14621 2012-03-16  Richard Guenther  <rguenther@suse.de>
14623         * stor-layout.c (finish_bitfield_representative): Fall back
14624         to the conservative maximum size if we cannot compute the
14625         size of the tail padding.
14627 2012-03-16  Tristan Gingold  <gingold@adacore.com>
14629         * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
14630         __CRTL_VER and __VMS_VER.
14631         * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
14632         and vms_c_get_vms_ver.
14633         * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
14634         functions.
14635         * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
14636         (VMS_DEFAULT_VMS_VER): Define.
14637         * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
14638         (VMS_DEFAULT_VMS_VER): Define.
14640 2012-03-16  Richard Guenther  <rguenther@suse.de>
14642         * tree-vect-loop.c (get_initial_def_for_induction): Use
14643         build_constructor directly.
14644         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
14645         build_vector_from_val.
14646         * tree.c (build_vector_from_val): Avoid creating a constructor
14647         first when we want a constant vector.
14649 2012-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14651         * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
14653 2012-03-16  Richard Guenther  <rguenther@suse.de>
14655         * tree.h (TREE_VECTOR_CST_ELTS): Remove.
14656         (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
14657         (struct tree_vector): Remove elements member, add variable size
14658         elts array member.
14659         (build_vector_stat): Declare.
14660         (build_vector): Define in terms of build_vector_stat.
14661         * tree.c (build_vector): Rename to ...
14662         (build_vector_stat): ... this.  Take array of trees as parameter.
14663         (build_vector_from_ctor): Adjust.
14664         (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
14665         initializer_zerop): Adjust.
14666         * cfgexpand.c (expand_debug_expr): Likewise.
14667         * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
14668         const_vector_from_tree): Likewise.
14669         * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
14670         native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
14671         fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
14672         * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
14673         (lto_input_ts_vector_tree_pointers): Adjust.
14674         * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
14675         (write_ts_vector_tree_pointers): Adjust.
14676         * varasm.c (const_hash_1, compare_constant, copy_constant,
14677         output_constant): Adjust.
14678         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
14679         * print-tree.c (print_node): Adjust.
14680         * tree-pretty-print.c (dump_generic_node): Adjust.
14681         * tree-vect-generic.c (uniform_vector_p, vector_element,
14682         lower_vec_perm): Adjust.
14683         * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
14684         * tree-vect-slp.c (vect_get_constant_vectors,
14685         vect_transform_slp_perm_load): Adjust.
14686         * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
14687         * expmed.c (make_tree): Adjust.
14688         * config/i386/i386.c (ix86_expand_builtin): Adjust.
14689         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
14690         and implementation.
14691         (sparc_fold_builtin): Adjust.
14693 2012-03-16  Tristan Gingold  <gingold@adacore.com>
14695         * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
14696         * config/vms/vms-stdint.h: New file.
14698 2012-03-16  Tristan Gingold  <gingold@adacore.com>
14700         * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
14701         (ia64-hp-*vms*): Replaced by ...
14702         (*-*-*vms*): ... This new entry.
14704 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
14706         PR target/52568
14707         * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
14708         (ix86_expand_vec_perm_const_1): Use it.
14710         PR target/52568
14711         * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
14712         (avx2_permv4df): Remove.
14713         (avx2_permv4di): Macroize into...
14714         (avx2_perm<mode>): ... this using VI8F_256 iterator.
14715         (avx2_permv4di_1): Macroize into...
14716         (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
14718 2012-03-15  Ulrich Weigand  <ulrich.weigand@linaro.org>
14720         * combine.c (apply_distributive_law): Do not distribute SUBREG.
14722 2012-03-15  Ira Rosen  <irar@il.ibm.com>
14723             Ulrich Weigand  <ulrich.weigand@linaro.org>
14725         * tree-vect-patterns.c (widened_name_p): Rename to ...
14726         (type_conversion_p): ... this.  Add new argument to determine
14727         if it's a promotion or demotion operation.  Check for
14728         CONVERT_EXPR_CODE_P instead of NOP_EXPR.
14729         (vect_recog_dot_prod_pattern): Call type_conversion_p instead
14730         widened_name_p.
14731         (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
14732         vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
14733         Likewise.
14734         (vect_recog_mixed_size_cond_pattern): Likewise and allow
14735         non-constant then and else clauses.
14737 2012-03-15  Ira Rosen  <irar@il.ibm.com>
14738             Ulrich Weigand  <ulrich.weigand@linaro.org>
14740         * tree-vectorizer.h (vect_pattern_recog): Add new argument.
14741         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
14742         vect_pattern_recog.
14743         * tree-vect-patterns.c (widened_name_p): Pass basic block
14744         info to vect_is_simple_use.
14745         (vect_recog_dot_prod_pattern): Fail for basic blocks.
14746         (vect_recog_widen_sum_pattern): Likewise.
14747         (vect_handle_widen_op_by_const): Support basic blocks.
14748         (vect_operation_fits_smaller_type,
14749         vect_recog_over_widening_pattern): Likewise.
14750         (vect_recog_vector_vector_shift_pattern): Support basic blocks.
14751         Update call to vect_is_simple_use.
14752         (vect_recog_mixed_size_cond_pattern): Support basic blocks.
14753         Add printing.
14754         (check_bool_pattern): Add an argument, update call to
14755         vect_is_simple_use and the recursive calls.
14756         (vect_recog_bool_pattern): Update relevant function calls.
14757         Add printing.
14758         (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
14759         (vect_pattern_recog_1): Check for reduction only in loops.
14760         (vect_pattern_recog): Add new argument.  Support basic blocks.
14761         * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
14762         info to vect_is_simple_use_1.
14763         * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
14764         (vect_slp_analyze_bb_1): Call vect_pattern_recog.
14766 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
14767             Andrew Pinski  <apinski@cavium.com>
14769         PR middle-end/52592
14770         * builtins.c (expand_builtin_int_roundingfn_2): If expanding
14771         BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
14772         calls instead of __builtin_ir{int,ound}*.
14774 2012-03-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14776         * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
14777         documentation.
14779 2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14781         * config.gcc (target_type_format_char): New. Document it. Set it for
14782         arm*-*-* .
14783         * configure.ac (gnu_unique_option): Use target_type_format_char
14784         in test.  Comment rationale.
14785         * configure: Regenerate .
14787 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
14789         PR tree-optimization/52267
14790         * tree-vrp.c (masked_increment): New function.
14791         (register_edge_assert_for_2): Derive ASSERT_EXPRs
14792         from (X & CST1) cmp CST2 tests.
14794 2012-03-15  Richard Guenther  <rguenther@suse.de>
14796         PR middle-end/52580
14797         * tree-data-ref.c (subscript_dependence_tester_1): Check
14798         all dimensions for non-conflicting access functions.
14800 2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14802         PR c++/44783
14803         * doc/invoke.texi [C++ Language Options]: Document
14804         -ftemplate-backtrace-limit.
14806 2012-03-15  Tristan Gingold  <gingold@adacore.com>
14808         * c-parser.c (c_parser_parameter_declaration): Handle #pragma
14809         before a parameter.
14811 2012-03-15  Tristan Gingold  <gingold@adacore.com>
14813         * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
14814         use DW_OP_call_frame_cfa.
14816 2012-03-14  H.J. Lu  <hongjiu.lu@intel.com>
14818         PR target/50797
14819         * config/i386/i386-opts.h (pmode): New.
14821         * config/i386/i386.c (ix86_option_override_internal): Properly
14822         check and set ix86_pmode.
14824         * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
14826         * config/i386/i386.opt (maddress-mode=): New.
14828         * doc/invoke.texi: Document -maddress-mode=short|long for x86.
14830 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14832         * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
14833         (dwarf2out_do_cfi_asm): Likewise.
14834         * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
14835         handling.
14836         (add_data_member_location_attribute): Likewise.
14837         (gen_array_type_die): Likewise.
14838         (gen_subprogram_die): Likewise.
14839         (gen_producer_string): Likewise.
14840         * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
14841         Remove MIPS_DEBUGGING_INFO handling.
14842         (sdb_debug_hooks): Likewise.
14843         (sdbout_begin_block): Likewise.
14844         (sdbout_end_block): Likewise.
14845         (sdbout_begin_prologue): Likewise.
14846         (sdbout_start_source_file): Likewise.
14847         (sdbout_end_source_file): Likewise.
14848         (sdbout_init): Likewise.
14849         * system.h (MIPS_DEBUGGING_INFO): Poison.
14851 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14853         * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
14854         (alpha_file_start) [MS_STAMP]: Remove.
14856         * config/alpha/elf.h (TARGET_GAS): Remove.
14857         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
14858         * config/alpha/linux.h (TARGET_DEFAULT): Remove.
14859         * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
14860         * config/alpha/vms.h (TARGET_DEFAULT): Remove.
14861         * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
14862         (alpha*-*-freebsd*): Likewise.
14863         (alpha*-*-netbsd*): Likewise.
14864         (alpha*-*-openbsd*): Likewise.
14865         (alpha*-*-*): Remove target_cpu_default2.
14866         * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
14867         handling.
14868         * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
14869         (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
14870         * config/alpha/alpha.c (print_operand): Always assume
14871         TARGET_AS_SLASH_BEFORE_SUFFIX.
14872         * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
14873         Remove TARGET_AS_CAN_SUBTRACT_LABELS.
14874         ("*builtin_setjmp_receiver_er_1"): Remove.
14875         * config/alpha/alpha.opt (malpha-as): Remove.
14876         (mgas): Ignore.
14877         * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
14878         -malpha-as, -mgas.
14879         Remove DEC Unix reference.
14881         * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
14882         (EXTENDED_COFF): Remove.
14883         * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
14884         (EXTENDED_COFF): Don't undef.
14885         * config/alpha/alpha.c (alpha_file_start): Always assume
14886         OBJECT_FORMAT_ELF.
14887         Don't set targetm.asm_file_start_file_directive.
14888         [!OBJECT_FORMAT_ELF]: Remove.
14889         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
14891         * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
14892         (DBX_DEBUGGING_INFO): Remove.
14893         (MIPS_DEBUGGING_INFO): Remove.
14894         (PREFERRED_DEBUGGING_TYPE): Remove.
14895         (DBX_OUTPUT_SOURCE_LINE): Remove.
14896         (SDB_OUTPUT_SOURCE_LINE): Remove.
14897         (DBX_CONTIN_LENGTH): Remove.
14898         (NO_DBX_FUNCTION_END): Remove.
14899         (ASM_STABS_OP): Remove.
14900         (ASM_STABN_OP): Remove.
14901         (ASM_STABD_OP): Remove.
14902         (SDB_ALLOW_FORWARD_REFERENCES): Remove.
14903         (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
14904         (PUT_SDB_DEF): Remove.
14905         (PUT_SDB_PLAIN_DEF): Remove.
14906         (PUT_SDB_TYPE): Remove.
14907         (sdb_label_count): Remove.
14908         (PUT_SDB_BLOCK_START): Remove.
14909         (PUT_SDB_BLOCK_END): Remove.
14910         (PUT_SDB_FUNCTION_START): Remove.
14911         (PUT_SDB_FUNCTION_END): Remove.
14912         (PUT_SDB_EPILOGUE_END): Remove.
14913         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
14914         (MIPS_DEBUGGING_INFO): Don't undef.
14915         (DBX_DEBUGGING_INFO): Don't undef.
14916         * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
14917         (MIPS_DEBUGGING_INFO): Don't undef.
14918         (DBX_DEBUGGING_INFO): Don't undef.
14919         * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
14920         * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
14921         handling.
14922         (alpha_start_function): Likewise.
14923         (sdb_label_count): Remove.
14924         (alpha_output_filename): Remove DBX_DEBUG handling.
14925         (alpha_file_start): Likewise.
14927 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14929         * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
14930         (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
14931         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
14932         Solaris 8 support.
14933         * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
14934         (ld_tls_support): Remove Solaris 8 references.
14935         (lwp_dir, lwp_spec): Remove support for alternate thread library.
14936         * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
14937         * configure: Regenerate.
14938         * config.in: Regenerate.
14940         * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
14941         * config/i386/sol2.h: Remove Solaris 8 references.
14943         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
14944         (i?86-*-solaris2.9): ... this.
14945         Remove Solaris 8 references.
14946         (Specific, *-*-solaris2*): Document Solaris 8 removal.
14947         Remove Solaris 8 references.
14949 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14951         * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
14952         (mips-sgi-irix6.5*): Remove.
14953         * config.host (mips-sgi-irix*): Remove.
14954         * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
14955         (set_have_as_tls): Remove *-*-irix6*.
14956         (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
14957         * configure: Regenerate.
14959         * config/mips/iris6.h: Remove.
14960         * config/mips/iris6.opt: Remove.
14961         * config/mips/t-irix6: Remove.
14963         * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
14964         (TARGET_IRIX6): Remove.
14965         (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
14966         Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
14967         * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
14968         handling.
14969         (mips_file_start): Likewise.
14970         * config/mips/mips-protos.h (irix_asm_output_align): Remove.
14972         * config/mips/driver-native.c [__sgi__]: Remove.
14973         (host_detect_local_cpu) [__sgi__]: Remove.
14975         * config/mips/gnu-user.h: Remove iris5.h reference.
14977         * config/mips/mips-modes.def: Remove IRIX 6 reference.
14978         * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
14979         * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
14980         Remove.
14982         * gcc.c (main): Move asm_debug initialization ...
14983         (asm_debug): ... here.
14985         * ginclude/stddef.h (__STDDEF_H__): Don't define.
14987         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
14988         * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
14989         * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
14990         (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
14991         [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
14992         * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
14993         Remove.
14994         * doc/tm.texi: Regenerate.
14996         * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
14997         IRIX 6 reference.
14998         (MIPS Options, -march): Remove IRIX reference.
14999         * doc/install.texi (Binaries, SGI IRIX): Remove.
15000         (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
15001         of section.
15002         * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
15004 2012-03-14  Martin Jambor  <mjambor@suse.cz>
15006         * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
15007         when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
15008         (expand_expr_real_1): Do not handle misalignment if modifier is
15009         EXPAND_WRITE.
15011 2012-03-14  Richard Guenther  <rguenther@suse.de>
15013         PR middle-end/52584
15014         * tree-vect-generic.c (type_for_widest_vector_mode): Take
15015         element type instead of mode, use build_vector_type_for_mode
15016         instead of the langhook, build a vector of proper signedness.
15017         (expand_vector_operations_1): Adjust.
15019 2012-03-14  Richard Guenther  <rguenther@suse.de>
15021         PR middle-end/52582
15022         * gimple-fold.c (canonicalize_constructor_val): Make sure we have
15023         a cgraph node for a FUNCTION_DECL that comes from a constructor.
15024         (gimple_get_virt_method_for_binfo): Likewise.
15026 2012-03-14  Richard Guenther  <rguenther@suse.de>
15028         PR tree-optimization/52571
15029         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
15030         flag_section_anchors check ...
15031         (vect_can_force_dr_alignment_p): ... here.  Do not re-align
15032         DECL_COMMON variables.
15034 2012-03-14  Richard Guenther  <rguenther@suse.de>
15036         * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
15037         * stor-layout.c (start_bitfield_representative): New function.
15038         (finish_bitfield_representative): Likewise.
15039         (finish_bitfield_layout): Likewise.
15040         (finish_record_layout): Call finish_bitfield_layout.
15041         * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
15042         for QUAL_UNION_TYPE fields.
15043         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
15044         Stream DECL_BIT_FIELD_REPRESENTATIVE.
15045         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
15047         PR middle-end/52080
15048         PR middle-end/52097
15049         PR middle-end/48124
15050         * expr.c (get_bit_range): Unconditionally extract bitrange
15051         from DECL_BIT_FIELD_REPRESENTATIVE.
15052         (expand_assignment): Adjust call to get_bit_range.
15054 2012-03-14  Richard Guenther  <rguenther@suse.de>
15056         PR middle-end/52578
15057         * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
15058         the outermost conversion is a sign-change only.
15059         (fold_binary_loc): Disregard widening and sign-changing
15060         conversions when we determine if two variables are equal
15061         for reassociation.
15062         * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
15063         (T1)x if the outermost conversion is a sign-change only.
15065 2012-03-14  Uros Bizjak  <ubizjak@gmail.com>
15067         Revert:
15068         2012-03-14  Uros Bizjak  <ubizjak@gmail.com>
15070         * config/i386/predicates.md (constant_call_address_operand): Declare
15071         as special predicate.  Update all uses.
15073 2012-03-13  Jakub Jelinek  <jakub@redhat.com>
15075         PR c/52577
15076         * c-parser.c (c_parser_postfix_expression)
15077         <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
15079         * config/i386/smmintrin.h: Avoid /* within a comment.
15080         * config/i386/nmmintrin.h: Likewise.
15082 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
15084         * config/i386/i386.md (xbegin): Remove constraint from expander.
15086 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
15088         * config/i386/predicates.md (constant_call_address_operand): Declare
15089         as special predicate.  Update all uses.
15090         * config/i386/i386.md: Remove mode from constant_call_address_operand
15091         predicates.
15092         * config/i386/i386.c (ix86_output_call_insn): Call
15093         constant_call_address_operand with VOIDmode.
15095 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
15097         * config/i386/i386.c (ix86_decompose_address): Handle subregs of
15098         AND zero extended address correctly.
15100 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
15102         * config/i386/predicates.md (tls_symbolic_operand): Declare as
15103         special predicate.
15104         (tls_modbase_operand): Ditto.
15105         * config/i386/i386.md: Remove mode from tls_symbolic_operand and
15106         tls_modbase_operand predicates.
15108 2012-03-13  Martin Jambor  <mjambor@suse.cz>
15110         * expr.c (expand_assignment): Handle misaligned scalar writes to
15111         memory through top-level MEM_REFs by calling store_bit_field.
15113 2012-03-13  Richard Guenther  <rguenther@suse.de>
15115         PR middle-end/52134
15116         * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
15117         if Y is a constant multiple of 1 << CST.
15119 2012-03-13  Georg-Johann Lay  <avr@gjlay.de>
15121         PR target/52488
15122         * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
15123         offset (size) to a value the insns can deal with.
15124         (expand_epilogue): Ditto.
15126 2012-03-13  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
15128         * config/arm/neon.ml (ops): Fixup expected instructions for
15129         unsigned vector compares.
15131 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
15133         * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
15134         addresses only when %reg is not in word mode.
15136 2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15138         * config/microblaze/microblaze.md: Fix typo.
15139         * tree-if-conv.c: Likewise.
15140         * tree-vect-patterns.c: Likewise.
15142 2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15144         * config.gcc (extra_passes): Remove.
15145         * configure.ac (extra_passes): Don't substitute.
15146         * configure: Regenerate.
15147         * Makefile.in (EXTRA_PASSES): Remove.
15148         (GCC_PASSES): Remove $(EXTRA_PASSES).
15149         (MOSTLYCLEANFILES): Likewise.
15150         (native): Likewise.
15151         (install-common): Likewise.
15153 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
15155         * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
15156         * config/i386/i386.c (ix86_decompose_address): Use
15157         TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
15158         (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
15159         thread pointer to a register.
15161 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15163         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
15164         on tls_symbolic_operand.
15165         (tls_global_dynamic_64_<mode>): Likewise.
15167 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
15169         PR other/52545
15170         * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
15171         SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
15173 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
15175         PR target/52499
15176         * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
15177         type from reg_class_t to enum reg_class.
15178         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
15180 2012-03-12  Andrew Pinski  <apinski@cavium.com>
15182         * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
15183         (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
15184         (value_replacement): Likewise.
15185         (empty_block_p): Check also if the PHIs for the block are empty.
15187 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
15189         PR target/52148
15190         * config/avr/avr.c (avr_out_movmem): Fix typo in output template
15191         for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
15192         r184615 from 2012-02-28.
15194 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15196         * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
15197         (ix86_gen_tls_local_dynamic_base_64): Likewise.
15198         (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
15199         and ix86_gen_tls_local_dynamic_base_64.
15200         (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
15201         ix86_gen_tls_local_dynamic_base_64.
15203         * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
15204         (*tls_global_dynamic_64_<mode>): This.
15205         (tls_global_dynamic_64): Renamed to ...
15206         (tls_global_dynamic_64_<mode>): This.
15207         (*tls_local_dynamic_base_64): Renamed to ...
15208         (*tls_local_dynamic_base_64_<mode>): This.
15209         (tls_local_dynamic_base_64): Renamed to ...
15210         (tls_local_dynamic_base_64_<mode>): This.
15212 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15214         * config/i386/i386.c (ix86_option_override_internal): Properly
15215         set ix86_gen_leave and ix86_gen_monitor.  Check Pmode == DImode,
15216         instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
15217         ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
15218         ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
15220         * config/i386/sse.md (sse3_monitor64): Renamed to ...
15221         (sse3_monitor64_<mode>): This.
15223 2012-03-12  Tristan Gingold  <gingold@adacore.com>
15225         * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
15226         (ia64_function_arg_advance): Ditto.
15228 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15230         * config.gcc (mips*-*-openbsd*): Remove.
15231         * config/mips/openbsd.h: Remove.
15232         * config/mips/sdb.h: Remove.
15234         * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
15235         * config/mips/mips.c (sdb_label_count): Remove.
15236         (mips_debugger_offset): Remove #if 0 code.
15237         (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
15238         * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
15240 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15242         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
15243         binutils reference.
15244         (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
15245         Update binutils references.
15246         (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
15247         Update binutils reference.
15248         Update Sun as/GNU ld caveat.
15249         Document binutils largefile requirement for LTO plugin.
15250         Remove reference to alternate libpthread.
15252 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15254         * config.gcc (alpha*-dec-osf5.1*): Remove.
15255         * config.host (alpha*-dec-osf*): Remove.
15256         * configure.ac (*-*-osf*): Remove.
15257         (alpha*-dec-osf*): Remove.
15258         * configure: Regenerate.
15260         * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
15261         config/alpha/va_list.h, config/alpha/x-osf: Remove.
15263         * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
15264         * config/alpha/alpha.c (struct machine_function): Update comment.
15265         (alpha_start_function): Remove Tru64 UNIX as handling for
15266         max_frame_size.
15267         * config/alpha/alpha.md ("exception_receiver"): Remove
15268         TARGET_LD_BUGGY_LDGP.
15269         ("*exception_receiver_2"): Likewise.
15270         * except.c (finish_eh_generation): Remove Tru64 reference.
15271         * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
15272         * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
15273         * target.def (handle_pragma_extern_prefix): Remove.
15275         * Makefile.in (mips-tfile.o-warn): Remove.
15276         (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
15277         (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
15278         * mips-tdump.c, mips-tfile.c: Remove.
15280         * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
15281         extern_prefix.
15282         * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
15283         (Specific, alpha*-dec-osf5.1): Note removal.
15284         * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
15285         Remove.
15286         * doc/tm.texi: Regenerate.
15287         * doc/trouble.texi (Cross-Compiler Problems): Remove.
15289 2012-03-12  Richard Guenther  <rguenther@suse.de>
15291         * config/arm/arm.c (neon_dereference_pointer): Do not call
15292         covert during RTL expansion.
15294 2012-03-12  Tristan Gingold  <gingold@adacore.com>
15296         * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
15297         Options.  Mention -mpointer-size.
15299 2012-03-12  Richard Guenther  <rguenther@suse.de>
15301         * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
15302         build_nonstandard_integer_type.
15304 2012-03-12  Richard Guenther  <rguenther@suse.de>
15306         * tree.c (signed_or_unsigned_type_for): Use
15307         build_nonstandard_integer_type.
15308         (signed_type_for): Adjust documentation.
15309         (unsigned_type_for): Likewise.
15310         * tree-pretty-print.c (dump_generic_node): Use standard names
15311         for non-standard integer types if available.
15313 2012-03-12  Tristan Gingold  <gingold@adacore.com>
15315         * config/vms/vms.opt: Add vms-opts.h header.
15316         (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
15317         target mask.
15318         (-mvms-return-codes): Document.
15319         (-mpointer-size): New option.
15320         (vms_pointer_size): Add enumeration.
15321         * config/vms/vms-opts.h: New file.
15322         * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
15323         __INITIAL_POINTER_SIZE.
15324         (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
15325         (C_COMMON_OVERRIDE_OPTIONS): Define.
15326         (DWARF2_ADDR_SIZE): Define.
15327         * config/vms/vms.c (vms_patch_builtins): Adjust condition.
15328         * config/vms/vms-protos.h (vms_c_common_override_options):
15329         New prototype.
15330         * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
15331         if -mno-pointer-size.
15332         (vms_c_common_override_options): New function.
15333         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
15334         * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
15335         (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
15336         and flag_vms_pointer_size.
15337         (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
15338         * config.gcc (*-*-*vms*): Define xm_file.
15339         (alpha*-dec-*vms*): Do not define xm_file.
15340         (alpha64-dec-*vms*): Remove.
15341         (ia64-hp-*vms*): Do not define xm_file.  Simplify tm_file
15342         and tmake_file.
15344 2012-03-12  Jakub Jelinek  <jakub@redhat.com>
15346         PR tree-optimization/51721
15347         * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
15348         if (int) unsvar cmp CST.
15350 2012-03-12  Richard Guenther  <rguenther@suse.de>
15352         * tree-sra.c (create_access_replacement): Only rename the replacement
15353         if we can rewrite it into SSA form.  Properly mark register typed
15354         replacements that we cannot rewrite with TREE_ADDRESSABLE.
15355         * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
15356         for aggregate or BLKmode results.
15358 2012-03-12  Jakub Jelinek  <jakub@redhat.com>
15360         PR tree-optimization/52533
15361         * tree-vrp.c (register_edge_assert_for_2): Use double_int
15362         type for mask, only handle shifts by non-zero in-range
15363         shift count, for LE_EXPR and GT_EXPR if new_val is
15364         maximum, don't add the assertion.
15366 2012-02-12  Kirill Yukhin  <kirill.yukhin@intel.com>
15368         * doc/invoke.texi: Document -mrtm option.
15369         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
15370         (OPTION_MASK_ISA_RTM_UNSET): Ditto.
15371         (ix86_handle_option): Handle OPT_mrtm.
15372         * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
15373         xtestintrin.h.
15374         (x86_64-*-*): Ditto.
15375         * i386-builtin-types.def (INT_FTYPE_VOID): New.
15376         * config/i386/i386-c.c (ix86_target_macros_internal): Define
15377         __RTM__ if needed.
15378         (ix86_target_string): Define -mrtm option.
15379         (PTA_RTM): New.
15380         (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
15381         Handle new option.
15382         (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
15383         (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
15384         IX86_BUILTIN_XTEST.
15385         (bdesc_special_args): Ditto.
15386         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
15387         (ix86_expand_special_args_builtin): Handle new built-in type.
15388         (ix86_expand_builtin): Handle XABORT instruction.
15389         * config/i386/i386.h (TARGET_RTM): New.
15390         * config/i386/i386.md (UNSPECV_XBEGIN): New.
15391         (UNSPECV_XEND): Ditto.
15392         (UNSPECV_XABORT): Ditto.
15393         (UNSPECV_XTEST): Ditto.
15394         (xbegin): Ditto.
15395         (xbegin_1): Ditto.
15396         (xend): Ditto.
15397         (xabort): Ditto
15398         (xtest): Ditto.
15399         (xtest_1): Ditto.
15400         * config/i386/i386.opt (mrtm): New.
15401         * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
15402         * config/i386/rtmintrin.h: New header.
15403         * config/i386/xtestintrin.h: Ditto.
15405 2012-03-12  Tristan Gingold  <gingold@adacore.com>
15407         * ginclude/stddef.h: Adjust previous patch.
15408         Use __VMS__ instead of VMS.
15410 2012-03-12  Uros Bizjak  <ubizjak@gmail.com>
15412         * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
15413         Also convert sequences with CC setting arithmetic instruction.
15415 2012-03-11  Sandra Loosemore  <sandra@codesourcery.com>
15417         * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
15418         from C Language Options to Preprocessor Options.
15419         (C Dialect Options): Move -no-integrated-cpp documentation
15420         from here...
15421         (Preprocessor Options): ...to here.  Rewrite the description
15422         so it makes more sense, and remove discussion of merging front ends.
15424 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
15426         * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
15427         needed for loop.
15428         (ix86_expand_setmem): Likewise.
15430 2012-03-11  Uros Bizjak  <ubizjak@gmail.com>
15432         * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
15433         convert_to_mode.
15435 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
15437         * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
15438         ptr_mode == SImode.  Replace DImode with Pmode or ptr_mode.
15440 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
15442         * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
15444 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
15446         * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
15447         TARGET_64BIT.
15449 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
15450             Uros Bizjak  <ubizjak@gmail.com>
15452         * config/i386/predicates.md (call_insn_operand): Allow
15453         constant_call_address_operand in Pmode only.
15454         (sibcall_insn_operand): Ditto.
15455         * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
15456         (*call_vzeroupper): Ditto.
15457         (*sibcall): Ditto.
15458         (*sibcall_vzeroupper): Ditto.
15459         (*call_value): Ditto.
15460         (*call_value_vzeroupper): Ditto.
15461         (*sibcall_value): Ditto.
15462         (*sibcall_value_vzeroupper): Ditto.
15463         (*indirect_jump): Ditto.
15464         (*tablejump_1): Ditto.
15465         (indirect_jump): Convert memory address to word mode for TARGET_X32.
15466         (tablejump): Ditto.
15467         * config/i386/i386.c (ix86_expand_call): Convert indirect operands
15468         to word mode.
15470 2012-03-11  Oleg Endo  <olegendo@gcc.gnu.org>
15472         PR target/51244
15473         * config/sh/sh.md (movnegt): Expand into respective insns immediately.
15474         Use movrt_negc instead of negc pattern for non-SH2A.
15475         (*movnegt): Remove.
15476         (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
15478 2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>
15480         * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
15481         if Pmode != word_mode.
15482         (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
15483         Pmode == SImode for TARGET_X32.
15485         * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
15486         (tls_initial_exec_x32): Likewise.
15488 2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>
15490         PR rtl-optimization/52528
15491         * combine.c (can_combine_p): Add setting of subst_low_luid
15492         before call to expand_field_assignment().
15494 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
15496         * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
15497         and related program names.
15499 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
15501         * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
15503 2012-03-09  Uros Bizjak  <ubizjak@gmail.com>
15505         PR target/52530
15506         * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
15507         (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
15508         to set code to 'q'.
15509         * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
15510         (*movdi_internal_rex64): Use %E operand modifier for lea.
15511         (*movsi_internal): Ditto.
15512         (*lea_1): Ditto.
15513         (*lea<mode>_2): Ditto.
15514         (*lea_{3,4,5,6}_zext): Ditto.
15515         (*tls_global_dynamic_32_gnu): Ditto.
15516         (*tls_global_dynamic_64): Ditto.
15517         (*tls_dynamic_gnu2_lea_32): Ditto.
15518         (*tls_dynamic_gnu2_lea_64): Ditto.
15519         (pro_epilogue_adjust_stack_<mode>_add): Ditto.
15521 2012-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
15523         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
15524         redefine to be NULL if the current bit-size is different from the
15525         configured bit-size.
15527         * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
15528         cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
15529         set the default tuning.  Add asserts to make sure the cpu and tune
15530         indexes are defined.  Fix tests for cpu/tune index to use >= 0 to
15531         test whether the index is set, instead of > 0.
15532         (rs6000_file_start): Do not reset the default cpu if the current
15533         bit-size is different from the configured bit-size.
15535 2012-03-09  Tristan Gingold  <gingold@adacore.com>
15537         * config/vms/vms-crtlmap.map: Add comments.
15538         Add entries needed to build Ada RTS.
15540 2012-03-09  Tristan Gingold  <gingold@adacore.com>
15542         * ginclude/stddef.h: Do not define __size_t on VMS.
15544 2012-03-09  Tristan Gingold  <gingold@adacore.com>
15546         * c-tree.h (c_default_pointer_mode): New variable.
15547         * c-decl.c (c_default_pointer_mode): New variable.
15548         (c_build_pointer_type): New function.
15549         (grokdeclarator): Call c_build_pointer_type instead
15550         of build_pointer_type.
15552         * config/vms/vms-c.c: Include c-tree.h
15553         (saved_pointer_mode): New variable.
15554         (handle_pragma_pointer_size): New function.
15555         (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
15556         (vms_c_register_pragma): Register __pointer_size and
15557         __required_pointer_size pragmas.
15559 2012-03-09  Tristan Gingold  <gingold@adacore.com>
15561         * config/vms/vms-c.c (vms_construct_include_filename): New function.
15562         (vms_c_register_includes): Reference it.
15564 2012-03-09  Andrew Pinski  <apinski@cavium.com>
15566         PR middle-end/51988
15567         * tree-ssa-phiopt.c: Include tree-pretty-print.h for
15568         print_generic_expr.
15569         (tree_ssa_phiopt_worker): Go through all the PHIs for
15570         value_replacement instead of just the singleton one.
15571         (value_replacement): Change return type to int.  Return 0 instead of
15572         false.
15573         Allow the middle basic block to contain more than just the defining
15574         statement.
15575         Handle non empty middle basic blocks.
15576         * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
15578 2012-03-09  Jiangning Liu  <jiangning.liu@arm.com>
15580         * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
15581         array reference and component reference.
15582         (analyze_scalar_evolution_for_address_of): New.
15584 2012-03-08  Jie Zhang  <jzhang918@gmail.com>
15586         PR target/49862
15587         * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
15588         (hwloop_pattern_reg): Fix set but not used warning.
15589         (bfin_reorg_loops): Remove unused parameter.
15590         (bfin_reorg): Update use of bfin_reorg_loops.
15592 2012-03-08  H.J. Lu  <hongjiu.lu@intel.com>
15594         * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
15595         with integer parameters in registers.
15596         (gen_push): Push register in word_mode instead of Pmode.
15597         (ix86_emit_save_regs): Likewise.
15598         (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
15599         (gen_pop): Pop register in word_mode instead of Pmode.
15600         (ix86_emit_restore_regs_using_pop): Likewise.
15601         (ix86_expand_prologue): Replace Pmode with word_mode for push
15602         immediate.  Use ix86_gen_pro_epilogue_adjust_stack.  Save and
15603         restore RAX and R10 in word_mode.
15604         (ix86_emit_restore_regs_using_mov): Restore integer registers
15605         in word_mode.
15606         (ix86_expand_split_stack_prologue): Save R10_REG and restore in
15607         word_mode.
15608         (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
15609         (ix86_split_long_move): Likewise.
15611         * config/i386/i386.md (W): New.
15612         (*push<mode>2_prologue): Replace :P with :W.
15613         (*pop<mode>1): Likewise.
15614         (*pop<mode>1_epilogue): Likewise.
15615         (push/pop peephole2): Use word_mode scratch registers.
15617 2012-03-08  Uros Bizjak  <ubizjak@gmail.com>
15619         * config/i386/predicates.md (indirect_branch_operand): Simplify.
15621 2012-03-08  Georg-Johann Lay  <avr@gjlay.de>
15623         * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
15624         for constants in [-63,63].
15626 2012-03-08  Uros Bizjak  <ubizjak@gmail.com>
15628         PR target/52530
15629         Revert:
15630         2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
15632         * config/i386/i386.c (ix86_print_operand_address): Only handle
15633         zero-extended DImode addresses.
15635 2012-03-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15637         * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
15638         * configure: Regenerate.
15640 2012-03-08  Georg-Johann Lay  <avr@gjlay.de>
15642         PR target/52496
15643         * config/avr/avr.c (avr_mem_clobber): New static function.
15644         (avr_expand_delay_cycles): Add memory clobber operand to
15645         delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
15646         * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
15647         (enable_interrupt, disable_interrupt): New expander.
15648         (nopv, sleep, wdr): New expanders.
15649         (delay_cycles_1): Add memory clobber.
15650         (delay_cycles_2): Add memory clobber.
15651         (delay_cycles_3): Add memory clobber.
15652         (delay_cycles_4): Add memory clobber.
15653         (cli_sei): New insn from former "enable_interrupt",
15654         "disable_interrupt" with memory clobber.
15655         (*wdt): New insn from former "wdt" with memory clobber.
15656         (*nopv): Similar, but for "nopv".
15657         (*sleep): Similar, but for "sleep".
15659 2012-03-07  Oleg Endo  <olegendo@gcc.gnu.org>
15660             Kaz Kojima  <kkojima@gcc.gnu.org>
15662         PR target/52503
15663         * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
15664         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
15665         (SUBTARGET_OVERRIDE_OPTIONS): Define.
15667 2012-03-07  Uros Bizjak  <ubizjak@gmail.com>
15669         * config/i386/predicates.md (x86_64_zext_general_operand): New.
15670         * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
15671         predicate to x86_64_zext_general_operand.  Accept "Z" constraint.
15673 2012-03-07  Walter Lee  <walt@tilera.com>
15675         * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
15676         REG_CFA_* notes for the stack pointer.
15677         (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
15678         EH_RETURN_STACKADJ_RTX.
15679         * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
15680         generate REG_CFA_* notes for the stack pointer.
15681         (tilepro_expand_epilogue): Restore stack pointer by adjusting it
15682         by EH_RETURN_STACKADJ_RTX.
15684 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
15686         * doc/invoke.texi (AVR Built-in Macros): Correct condition for
15687         when __AVR_3_BYTE_PC__ is defined.
15689 2012-03-07  Uros Bizjak  <ubizjak@gmail.com>
15691         * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
15692         (ix86_print_operand): Handle '^'.
15693         * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
15694         using P mode iterator.  Add %^ to asm template to conditionally emit
15695         addr32 prefix.
15696         (*rep_movdi_rex64): Ditto.
15697         (*strsetdi_rex_1): Ditto.
15698         (*rep_stosdi_rex64): Ditto.
15699         (*strmov{si,hi,qi}_1): Add %^ to asm template to
15700         conditionally emit addr32 prefix.
15701         (*rep_mov{si,qi}): Ditto.
15702         (*strset{si,hi,qi}): Ditto.
15703         (*rep_stos{si,qi}): Ditto.
15704         (*cmpstrnqi_nz_1): Ditto.
15705         (*cmpstrnqi_1): Ditto.
15706         (*strlenqi_1): Ditto.
15708 2012-03-07  H.J. Lu  <hongjiu.lu@intel.com>
15710         * config/i386/i386.c (function_value_64): Return pointers in
15711         word_mode instead of Pmode.
15712         (ix86_promote_function_mode): Likewise.
15714 2012-03-07  Richard Guenther  <rguenther@suse.de>
15716         * coverage.c (get_gcov_type): Use type_for_mode.
15717         (get_gcov_unsigned_t): Likewise.
15718         * expr.c (store_constructor): Use type_for_mode.
15719         (try_casesi): Likewise.
15720         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
15721         (add_standard_iv_candidates): Use standard type trees.
15722         * dojump.c (do_jump): Remove dead code.
15724 2012-03-07  Richard Guenther  <rguenther@suse.de>
15726         * c-typeck.c (pointer_diff): Use c_common_type_for_size.
15728 2012-03-07  Richard Guenther  <rguenther@suse.de>
15730         * convert.c (strip_float_extensions): Move ...
15731         * tree.c (strip_float_extensions): ... here.
15733 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
15735         PR target/52484
15736         * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
15738 2012-03-07  Richard Guenther  <rguenther@suse.de>
15740         * omp-low.c (extract_omp_for_data): Use signed_type_for.
15741         (expand_omp_for_generic): Likewise.
15742         (expand_omp_for_static_nochunk): Likewise.
15743         (expand_omp_for_static_chunk): Likewise.
15744         * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
15745         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
15746         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
15747         Use unsigned_type_for.
15748         (vect_create_cond_for_align_checks): Use signed_type_for.
15750 2012-03-07  Andrey Belevantsev  <abel@ispras.ru>
15752         PR rtl-optimization/52203
15753         * sel-sched.c (estimate_insn_cost): New parameter pempty.  Adjust
15754         all callers to pass NULL except ...
15755         (reset_sched_cycles_in_current_ebb): ... here, save the value
15756         in new variable 'empty'.  Increase issue_rate only for
15757         non-empty insns.
15759 2012-03-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
15761         PR target/51417
15762         * Makefile.in: Let install-gcc-ar depend on installdirs,
15763         gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
15764         Don't double canonicalize if cross-compiling.
15766 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
15768         PR target/52506
15769         * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
15770         to: RAMPZ, RAMPY, RAMPX, RAMPD.
15771         (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
15773 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
15775         PR target/52505
15776         * config/avr/avr.c (avr_out_xload): Don't read unintentionally
15777         from RAM.
15778         * config/avr/avr.md (xload_8): Adjust insn length.
15780 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
15782         PR target/52461
15783         * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
15784         if RAMPZ affects reading from RAM.
15786 2012-03-07  Richard Guenther  <rguenther@suse.de>
15788         PR pch/52518
15789         PR pch/38987
15790         * doc/invoke.texi (Precompiled Headers): Remove sentence that
15791         suggests you can include PCHs from inside another header.
15793 2012-03-07  Richard Sandiford  <rdsandiford@googlemail.com>
15795         PR middle-end/52515
15796         * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
15798 2012-03-07  Kai Tietz  <ktietz@redhat.com>
15800         * doc/invoke.texi (fwritable-relocated-rdata): Document
15801         new Cygwin/MinGW target option.
15802         * config/i386/winnt.c (i386_pe_unique_section): Ignore
15803         reloc if flag -fwritable-relocated-rdata is not set.
15804         (i386_pe_section_type_flags): Likewise.
15805         * config/i386/cygming.opt (fwritable-relocated-rdata):
15806         Add new flag variable flag_writable_rel_rdata.
15808 2012-03-07  Richard Guenther  <rguenther@suse.de>
15810         * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
15811         precision against gimple constraints.
15813 2012-03-06  Richard Sandiford  <rdsandiford@googlemail.com>
15815         PR middle-end/52372
15816         * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
15817         variables.
15818         (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
15819         * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
15820         variables.
15821         (init_emit_regs): Move associated initialization to...
15822         (init_emit_once): ...here.
15824 2012-03-06  Richard Henderson  <rth@redhat.com>
15826         * config/m68k/m68k.h (ISA_HAS_TAS): New.
15827         * config/m68k/sync.md (atomic_test_and_set): Use it.
15828         (atomic_test_and_set_1): Likewise.
15830 2012-03-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
15832         PR target/50310
15833         * config/rs6000/vector.md (vector_uneq<mode>): Add support for
15834         UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
15835         (vector_ltgt<mode>): Likewise.
15836         (vector_ordered<mode>): Likewise.
15837         (vector_unordered<mode>): Likewise.
15838         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
15840 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
15842         * trans-mem.c: New typedef for tm_region_p.
15843         Define vector types for tm_region_p.
15844         (tm_region_init): Replace region_worklist to a vector called
15845         bb_regions.
15847 2012-03-06  Richard Guenther  <rguenther@suse.de>
15849         * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
15850         MEM_REF with constant pointer operand.
15852 2012-03-06  Richard Guenther  <rguenther@suse.de>
15854         PR middle-end/52493
15855         * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
15857 2012-03-06  Tristan Gingold  <gingold@adacore.com>
15859         * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
15860         (external_model_kind): Improve documentation.
15861         (vms_pragma_extern_model): Handle relaxed_redef.
15862         (vms_c_register_pragma): Allow expansion for nomember_alignment.
15864 2012-03-06  Georg-Johann Lay  <avr@gjlay.de>
15866         * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
15867         Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
15868         Some more notes on EIND usage and reorder EIND subsection.
15870 2012-03-06  Tristan Gingold  <gingold@adacore.com>
15872         * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
15873         * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
15875 2012-03-06  Tristan Gingold  <gingold@adacore.com>
15877         * config/vms/t-vmsnative (version): Define.
15878         * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
15880 2012-03-06  Andrey Belevantsev  <abel@ispras.ru>
15882         PR rtl-optimization/52250
15883         * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
15884         to put note list into.  Unconditionally call move_bb_info.
15885         (move_bb_info): Do not assert the blocks being in the same region,
15886         just drop the note list if they are not.
15888 2012-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
15890         PR target/51244
15891         * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
15892         and use unified expansion logic.
15893         * config/sh/sh.md (xorsi3_movrt): Rename to movrt.  Move
15894         closer to the existing movt insn.
15895         (negc): Rename insn to *negc.  Add new expander.
15896         (movnegt): Use xor pattern for T bit negation.  Reserve helper
15897         constant for negc pattern.
15898         (*movnegt): New insn and splitter.
15900 2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>
15902         * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
15903         PLUS_EXPR.
15905 2012-03-05  Richard Henderson  <rth@redhat.com>
15907         * genemit.c (main): Include "target.h" in insn-emit.c.
15908         * Makefile.in (insn-emit.o): Depend on TARGET_H.
15909         * config/sh/sync.md (atomic_test_and_set): Reference
15910         targetm.atomic_test_and_set_trueval instead of
15911         TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
15913 2012-03-05  Joern Rennecke  <joern.rennecke@embecosm.com>
15915         * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
15916         Make static.
15918 2012-03-05  Steven Bosscher  <steven@gcc.gnu.org>
15920         * langhooks.c (add_builtin_type): New function.
15921         * langhooks.h (add_builtin_type): Export it.
15922         * config/mep/mep.c (mep_init_builtins): Use it.
15923         * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
15925 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
15927         PR debug/51902
15928         * tree.h (BLOCK_SAME_RANGE): Define.
15929         * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
15930         if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
15931         Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
15932         isn't equal to supercontext fragment's fragment chain.
15933         Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
15934         fragment origin.
15935         (blocks_nreverse_all): Likewise.
15936         (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits.  Set
15937         BLOCK_SUPERCONTEXT to supercontext fragment instead of
15938         supercontext fragment's fragment origin.
15939         * dwarf2out.c (add_high_low_attributes): If stmt has the same
15940         range as its parent (or parents thereof etc.), use the parent's
15941         DW_AT_ranges value instead of creating a new .debug_ranges range.
15943 2012-03-05  Richard Henderson  <rth@redhat.com>
15945         PR tree-opt/52242
15946         Revert: 2011-11-26  Richard Henderson  <rth@redhat.com>
15947         * omp-low.c (expand_omp_atomic): Assume anything aligned to
15948         BIGGEST_ALIGNMENT is aligned.
15950 2012-03-05  Richard Henderson  <rth@redhat.com>
15952         * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
15953         * config/sh/sh.c: ... here.
15955 2012-03-05  Richard Henderson  <rth@redhat.com>
15957         PR target/52481
15958         * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
15959         instead of calling negqi2 directly.
15961 2012-03-05  Aldy Hernandez  <aldyh@redhat.com>
15963         PR middle-end/52463
15964         * trans-mem.c (tm_region_init): Use last_basic_block.
15966 2012-03-05  Oleg Endo  <olegendo@gcc.gnu.org>
15968         * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
15969         * config/sh/sync.md (atomic_test_and_set): New expander.
15970         (tasb, atomic_test_and_set_soft): New insns.
15971         * config/sh/sh.opt (menable-tas): New option.
15972         * doc/invoke.texi (SH Options): Document it.
15974 2012-03-05  Richard Guenther  <rguenther@suse.de>
15976         * cfgloop.c (verify_loop_structure): Verify dominators before
15977         using them.
15978         * graphite-clast-to-gimple.c (graphite_verify): Do not verify
15979         dominators from here.
15980         * graphite-scop-detection.c (create_sese_edges): Likewise.
15981         * loop-doloop.c (doloop_optimize_loops): Likewise.
15982         * loop-init.c (loop_optimizer_init): Likewise.
15983         * loop-unroll.c (unroll_and_peel_loops): Likewise.
15984         * loop-unswitch.c (unswitch_loops): Likewise.
15985         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
15986         * tree-parloops.c (parallelize_loops): Likewise.  Verify
15987         only when checking is enabled.
15988         * tree-loop-distribution.c (tree_loop_distribution): Likewise.
15990 2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>
15992         * genautomata.c (parse_automata_opt): New static function.
15993         (initiate_automaton_gen): Remove all option handling code.  Remove
15994         argc argument.  All callers changed.
15995         (main): Call init_rtx_reader_args_cb with the new function as argument.
15997 2012-03-05  Richard Guenther  <rguenther@suse.de>
15999         * cfgexpand.c (gimple_expand_cfg): Free dominator info.
16000         * tree-if-conv.c (combine_blocks): Free post-dominator info
16001         after breaking it.
16002         * tree-parloops.c (create_parallel_loop): Free and re-compute
16003         dominator info after breaking it.
16005 2012-03-05  Richard Guenther  <rguenther@suse.de>
16007         PR middle-end/52353
16008         * optabs.h (trapv_unoptab_p): New function.
16009         (trapv_binoptab_p): Likewise.
16010         * optabs.c (expand_binop): Use emit_libcall_block_1 with
16011         a proper equiv_may_trap argument.
16012         (expand_unop): Likewise.
16013         (emit_libcall_block_1): Take extra argument whether the
16014         instruction may trap.  Renamed from ...
16015         (emit_libcall_block): ... this.  New wrapper.
16017 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
16019         PR tree-optimization/51721
16020         * tree-vrp.c (register_edge_assert_for_2): If comparing
16021         lhs of right shift by constant with an integer constant,
16022         add ASSERT_EXPRs for the rhs1 of the right shift.
16024         * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
16026 2012-03-05  Richard Guenther  <rguenther@suse.de>
16028         * tree.c (integer_zerop): Handle VECTOR_CSTs.
16029         (integer_onep): Likewise.
16030         (integer_all_onesp): Likewise.
16032 2012-03-05  Georg-Johann Lay  <avr@gjlay.de>
16034         * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
16036 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
16038         * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
16039         instead of TARGET_64BIT.
16041 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
16043         * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
16044         adjust_stack_insn.
16046 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
16048         * config/i386/i386.c (ix86_print_operand_address): Only handle
16049         zero-extended DImode addresses.
16051 2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
16053         * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
16054         taken and cputaken as bool.
16056 2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
16058         * config/i386/constraints.md (Ya): New internal constraint.
16059         * config/i386/i386.md (zero_extendsidi2): Remove expansion.
16060         (*zero_extendsidi2_rex64): Add x,x alternative.
16061         (*zero_extendsidi2): Ditto.  Add o,0 alternative.
16062         Remove flags reg clobber.  Adjust corresponding splits.
16063         (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
16064         zero_extendqisi2 expanders using SWI12 mode iterator.
16065         (zero_extend<mode>si2_and): Macroize insn from
16066         zero_extendhisi2_and and zero_extendqisi2_and.  Merge corresponding
16067         splitters.
16068         (*zero_extend<mode>si2):  Macroize insn from
16069         *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
16070         (*zero_extend*2_movzbl_and): Remove insn patterns.
16071         (zero_extendqihi2_and): Merge corresponding splitter.
16072         (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
16073         (*zero_extend*2_movzbl_and): Remove insn patterns.
16074         (*anddi_1): Split TYPE_IMOVX instructions.
16075         (*andsi_1): Use Ya for alternative 2.  Split TYPE_IMOVX instructions.
16076         (*andhi_1): Ditto.
16077         (and->zext splitter): Add splitter pattern.
16078         (zero extend with andsi3 splitter): Adjust zero_extend pattern.
16080 2012-03-04  Sandra Loosemore  <sandra@codesourcery.com>
16082         * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
16083         x86-specific text.
16084         (Debugging Options): Likewise.
16085         (Optimize Options): Likewise.
16086         (i386 and x86-64 Options): Discuss -march before -mtune, consistently
16087         with other architectures.  Use official processor names with correct
16088         spelling/capitalization.  Fix formatting and grammar issues.
16089         (i386 and x86-64 Windows Options): Similar cleanup here.
16091 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16093         * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
16095 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16097         * config/sh/sh.c (sh_dwarf_register_span): Don't apply
16098         DBX_REGISTER_NUMBER.
16100 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16102         * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
16103         operand is CONST_INT.  Take COSTS_N_INSNS into account.
16104         (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
16105         of shiftcosts.
16107 2012-03-02  Richard Henderson  <rth@redhat.com>
16109         * optabs.c (expand_atomic_test_and_set): Honor
16110         atomic_test_and_set_trueval even when atomic_test_and_set
16111         optab is not in use.
16113 2012-03-02  Kaz Kojima  <kkojima@gcc.gnu.org>
16115         PR target/48596
16116         PR target/48806
16117         * config/sh/sh.c (sh_register_move_cost): Increase cost between
16118         GENERAL_REGS and FP_REGS for SImode.
16120 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
16122         PR target/49486
16123         * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
16124         (absdi2): New expander.
16125         (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
16127 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
16129         * config/sh/sync.md (atomic_exchange<mode>): New expander.
16130         (atomic_exchange<mode>_soft): New insn.
16132 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
16134         * config/sh/sync.md: Update copyright notice dates.
16135         (atomic_compare_and_swap<mode>): Use SImode for return value instead
16136         of QImode.
16137         (atomic_compare_and_swap<mode>_soft): Likewise.
16139 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
16141         PR target/31640
16142         * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
16143         * config/sh/sh.c: Update copyright notice dates.
16144         (sh_loop_align): Add logic from LOOP_ALIGN.  Don't disable loop
16145         alignment for TARGET_HARD_SH4.
16146         (sh_option_override): Reduce default function alignment.  Set
16147         loop alignment to 4 bytes when not optimizing for size.
16149 2012-03-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
16151         PR middle-end/50335
16152         * doc/invoke.texi (floop-flatten): Remove.
16153         * toplev.c (process_options): Remove references to flag_loop_flatten.
16154         * tree-ssa-loop.c (gate_graphite_transform): Same.
16155         * common.opt (floop-flatten): Obsolete.
16156         * graphite-poly.c (apply_poly_transforms): Remove reference to
16157         flag_loop_flatten.
16158         * Makefile.in (graphite-flattening.o): Remove.
16159         * graphite-flattening.c: Remove.
16161 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
16163         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
16164         having mode compatible with the mode of previous compare.  Substitute
16165         compare mode of previous compare with the mode, compatible
16166         with eliminated and previous compare.
16168 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
16170         * config/rs6000/dfp.md (floatdidd2): New define_insn.
16172 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
16174         * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
16175         compatible with CCGOCmode and CCGCmode.
16177 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
16179         * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
16181 2012-03-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
16183         * config/arm/arm.c (arm_sat_operator_match): New function.
16184         * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
16185         * config/arm/arm.md ("insn" attribute): Add "sat" value.
16186         ("SAT", "SATrev"): New code iterators.
16187         ("SATlo", "SAThi"): New code iterator attributes.
16188         ("*satsi_<SAT:code>"): New pattern.
16189         ("*satsi_<SAT:code>_shift"): Likewise.
16190         * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
16191         and "shift" attributes.
16192         ("arm_usatsihi"): Add "insn" attribute.
16193         * config/arm/predicates.md (sat_shift_operator): Allow multiplication
16194         by powers of two.  Do not allow shift by 32.
16196 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
16198         PR target/46716
16199         * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
16200         to pass the argument in the register of "natural" mode.
16202 2012-03-02  Richard Guenther  <rguenther@suse.de>
16204         PR tree-optimization/52406
16205         * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
16206         (struct indices): Add unconstrained_base member.
16207         (struct dr_alias): Remove unused vops member.
16208         (DR_UNCONSTRAINED_BASE): New define.
16209         * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
16210         add indices to allow their disambiguation.  Make DR_BASE_OBJECT
16211         be an artificial access that covers the whole indexed object,
16212         or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
16213         plain decl base-objects to their MEM_REF variant.
16214         (dr_may_alias_p): When the base-object of either data reference
16215         has unknown size use only points-to information.
16216         (compute_affine_dependence): Make dumps easier to read and
16217         more verbose.
16218         * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
16219         DR_REF when looking for packed references.
16220         (vect_supportable_dr_alignment): Likewise.
16222 2012-03-02  Greta Yorsh  <Greta.Yorsh@arm.com>
16224         * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
16225         Improve conditions for peepholes of loads followed by commutative
16226         operators.
16227         * config/arm/ldmstm.md: Regenerated.
16229 2012-03-02  Richard Guenther  <rguenther@suse.de>
16231         * BASE-VER: Set to 4.8.0.
16233 2012-03-01  Richard Earnshaw  <rearnsha@arm.com>
16235         * config.gcc (obsolete): Add all ARM targets using the FPA.
16236         (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
16237         * doc/install.texi: Avoid references to obsolete ARM ports.
16239 2012-03-01  Joern Rennecke  <joern.rennecke@embecosm.com>
16241         * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
16243 2012-03-01  Jeremy Bennett  <jeremy.bennett@embecosm.com>
16244             Joern Rennecke  <joern.rennecke@embecosm.com>
16246         * doc/extend.texi: Expand and update information on interrupt
16247         attribute for Epiphany.
16249 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
16251         * config/sh/sh-protos.h: Update copyright notice dates.
16252         * config/sh/sh.h: Likewise.
16253         * config/sh/sh.md: Likewise.
16254         * config/sh/constraints.md: Likewise.
16255         * config/sh/predicates.md: Likewise.
16257 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
16259         * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
16260         * config/sh/sh.c (tertiary_reload_operand): Likewise.
16262 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
16264         * config/sh/constraints.md: Fix comment typo.
16266 2012-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16268         PR target/52408
16269         * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
16270         unsigned HOST_WIDE_INT.
16271         (zvdep_imm64): Likewise.
16272         (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
16273         (vdepi_and): Likewise.
16274         Likewise for unamed 64-bit patterns.
16275         * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
16277 2012-03-01  Alexandre Oliva  <aoliva@redhat.com>
16279         PR debug/52001
16280         PR rtl-optimization/52417
16281         * cselib.c (cselib_any_perm_equivs): New variable.
16282         (cselib_reset_table): Check that it's not set when not
16283         preserving constants.
16284         (cselib_add_permanent_equiv): Set it.
16285         (cselib_have_permanent_equivalences): New.
16286         (cselib_init, cselib_finish): Reset it.
16287         * cselib.h (cselib_have_permanent_equivalences): Declare.
16288         * alias.c (get_addr): Restore earlier behavior when there
16289         aren't permanent equivalences.
16291 2012-03-01  Steven Bosscher  <steven@gcc.gnu.org>
16293         * config/mn10300/mn10300-modes.def: Fix copyright notice.
16294         * config/v850/v850-modes.def: Fix copyright notice.
16296 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
16298         * doc/extend.texi (AVR Built-in Functions): Document
16299         __builtin_avr_flash_segment.
16301         * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
16302         * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
16303         (*split.flash_segment): New insn-and-split.
16304         * config/avr/avr.c (avr_init_builtins): Add local variables:
16305         const_memx_void_node, const_memx_ptr_type_node,
16306         char_ftype_const_memx_ptr.
16308 2012-03-01  Jakub Jelinek  <jakub@redhat.com>
16310         PR tree-optimization/52445
16311         * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
16312         add ssa_name_ver, offset and size fields and change store field
16313         to bool.
16314         (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
16315         (add_or_mark_expr): Likewise.  Only consider previous stores
16316         with the same size and offset.
16317         (nt_init_block): Only look at gimple_assign_single_p stmts,
16318         doesn't look at rhs2.
16320 2012-03-01  Richard Guenther  <rguenther@suse.de>
16322         PR middle-end/52443
16323         * tree-cfg.c (verify_gimple_assign_unary): Allow any
16324         conversions from integral types to pointer types.
16326 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
16328         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
16329         defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
16330         unintentionally removed in r184616.
16332 2012-03-01  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
16334         * doc/invoke.texi: Document AMD bdver2 and remove mentioning
16335         3DNow from bdver1.
16337 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
16338             Uros Bizjak  <ubizjak@gmail.com>
16340         PR target/52437
16341         * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
16342         alternatives, add "e" constraint to the new last alternative
16343         and ! to last 3 alternatives.
16345 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
16347         * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
16348         DW_AT_artificial attributes at the end of the processing.
16349         (gen_array_type_die): Likewise.
16350         (gen_enumeration_type_die): Likewise.
16351         (gen_struct_or_union_type_die): Likewise.
16352         (add_gnat_descriptive_type_attribute): Do not suppress debug info for
16353         the parent type.
16355 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
16357         PR middle-end/52419
16358         * expr.c (expand_assignment): If doing misaligned store that doesn't
16359         cover all mode bits, perform a RMW cycle.
16361         PR tree-optimization/52429
16362         * tree-parloops.c (separate_decls_in_region_debug): Return early
16363         if var is LABEL_DECL.
16365 2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16367         PR tree-optimization/52424
16368         * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
16369         calling dom_thread_across_edge.
16371 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
16373         * config/avr/avr.c: Move definition of TARGET macros to end of file.
16375 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
16377         * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
16378         * config/avr/avr.c (avr_output_bld): Remove unused function.
16379         (avr_out_sbxx_branch): Use "%T" to print bit position.
16381 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
16383         * config/avr/avr.md: Untabify.
16385 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
16387         * config/avr/avr.md (eqne): New code iterator.
16388         (*dec-and-branchsi): Use it in text peephole's condition.
16389         (*dec-and-branchhi): Ditto.
16390         (*dec-and-branchqi): Ditto.
16392 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
16394         PR target/49939
16395         * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
16396         the device does not have the skip-bug.
16398 2012-02-29  Oleg Endo  <olegendo@gcc.gnu.org>
16400         * doc/invoke.texi (-msoft-atomic): Add more detailed description.
16401         (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
16402         -mpretend-cmove): New.
16404 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
16406         PR bootstrap/52397
16407         * df.h (struct df_d): Adjust comment that hard_regs_live_count
16408         doesn't count DEBUG_INSN refs.
16409         * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
16410         for DEBUG_INSN refs.
16412 2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16414         Partially revert:
16416         2012-02-20  Richard Guenther  <rguenther@suse.de>
16417         PR tree-optimization/52298
16418         * tree-vect-stmts.c (vectorizable_load): Properly use
16419         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
16421 2012-02-28  Aldy Hernandez  <aldyh@redhat.com>
16423         PR middle-end/51752
16424         * gimple.h (gimple_in_transaction): New.
16425         (gimple_set_in_transaction): New.
16426         (struct gimple_statement_base): Add in_transaction field.
16427         * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
16428         transaction loads.
16429         (tree_ssa_lim_initialize): Compute transaction bits.
16430         * tree.h (compute_transaction_bits): Protoize.
16431         * trans-mem.c (tm_region_init): Use the heap to store BB
16432         auxilliary data.
16433         (compute_transaction_bits): New.
16435 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16437         * gcc.c (display_help): Document --help=common and sort entries
16438         alphabetically.
16440 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16442         * doc/install.texi: Document check-$LANG specific shortcuts
16444 2012-02-28  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
16446         PR target/51534
16447         * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
16448         and vcgtu.
16449         * config/arm/arm_neon.h: Regenerate.
16450         * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
16451         (neon_vcgeu): New insn.
16452         (neon_vcgtu): Likewise.
16453         * config/arm/neon.ml (s_8_32, u_8_32): New lists.
16454         (ops): Unsigned comparison intrinsics call a different builtin.
16456 2012-02-28  Richard Guenther  <rguenther@suse.de>
16458         PR target/52407
16459         * config/i386/i386.c (ix86_expand_vector_set): Fix element
16460         ordering for the VEC_CONCAT for two element vectors for
16461         V2SFmode, V2SImode and V2DImode.
16463 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
16465         PR target/49448
16466         * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
16467         detecting big-endian triplets.
16469 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
16471         * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
16472         mode if there is no type information available.
16474 2012-02-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
16476         PR tree-optimization/53207
16477         * doc/invoke.texi: Document as experimental and relying on graphite.
16479 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
16481         * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
16482         of initializer to changes from r184614.
16484 2012-02-28  Richard Guenther  <rguenther@suse.de>
16486         PR tree-optimization/52395
16487         * tree-sra.c (build_ref_for_offset): Also look at the base
16488         TYPE_ALIGN when figuring out the alignment of the replacement.
16490 2012-02-28  Richard Guenther  <rguenther@suse.de>
16492         PR tree-optimization/52402
16493         * ipa-prop.c (ipa_modify_call_arguments): Properly use
16494         mis-aligned types when creating the accesses at the call site.
16496 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
16498         * config/avr/builtins.def: New file.
16499         * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
16500         * config/avr/avr.c (enum avr_builtin_id): Use it.
16501         (avr_init_builtins): Use it. And use avr_bdesc.
16502         (bdesc_1arg): Remove.
16503         (bdesc_2arg): Remove.
16504         (bdesc_3arg): Remove.
16505         (struct avr_builtin_description): Add field n_args.
16506         (avr_bdesc): New static variable using builtins.def.
16507         (avr_expand_builtin): Use it.
16508         Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
16509         (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
16510         Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
16512 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
16514         PR target/52148
16515         * config/avr/avr.md (movmem_<mode>): Replace match_operand that
16516         match only one single hard register with respective hard reg rtx.
16517         (movmemx_<mode>): Ditto.
16518         * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
16519         insn anatomy of movmem[x]_<mode>.
16520         (avr_out_movmem): Same for printing assembler and operand usage.
16522 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
16524         PR target/49868
16525         PR target/52261
16526         * doc/extend.texi (AVR Named Address Spaces): No more try to fix
16527         address spaces located outside of device flash.
16529         * config/avr/avr.h (base_arch_s): Remove field n_segments.
16530         (mcu_type_s): Add field n_flash.
16531         * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
16532         Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
16533         (AVR_MCU): Add N_FLASH argument.
16534         * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
16535         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
16536         macro __FLASH<n> if that address space makes sense for the device.
16537         * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
16538         outside of target flash.
16539         (avr_asm_named_section): Ditto.
16540         (avr_asm_select_section): Ditto.
16541         (avr_addr_space_convert): Ditto.
16542         (avr_emit_movmemhi): Ditto.
16543         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
16544         address space is outside of device flash.
16545         (avr_insert_attributes): Ditto.
16546         (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
16547         avr_current_arch->n_segments.
16549 2012-02-27  H.J. Lu  <hongjiu.lu@intel.com>
16551         PR target/52352
16552         * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
16553         (*movabs<mode>_2): Likewise.
16555 2012-02-27  Jakub Jelinek  <jakub@redhat.com>
16557         PR target/52375
16558         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
16559         s_register_operand in the test instead of REG_P.  Don't call
16560         gen_reg_rtx if it won't be used.
16562         PR tree-optimization/52376
16563         * ipa-split.c (split_function): Ignore CLOBBER stmts.
16565 2012-02-27  Stuart Henderson  <shenders@gcc.gnu.org>
16567         * ifcvt.c (noce_get_condition): Check condition variable is not
16568         small_register_classes_for_mode_p before accepting.
16570 2012-02-27  Uros Bizjak  <ubizjak@gmail.com>
16572         * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
16574 2012-02-27  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
16576         Revert:
16577         2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
16578         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
16579         tuning parameters.
16580         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
16582 2012-02-27  Oleg Endo  <olegendo@gcc.gnu.org>
16584         * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
16586 2012-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
16588         * config/sh/predicates.md: Remove blank lines.
16589         * config/sh/sh.c: Fix typos in comments.
16590         * config/sh/constraints.md: Likewise.
16591         * config/sh/sh.md: Remove blank lines.
16592         Fix typos in comments.  Use ;; as comment characters.
16594 2012-02-26  Walter Lee  <walt@tilera.com>
16596         * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
16597         (replace_mov_pcrel_step2): Ditto.
16599 2012-02-25  Alexandre Oliva  <aoliva@redhat.com>
16601         PR debug/52001
16602         * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
16603         (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
16604         and locs that reference values newer than the non-canonical value
16605         at hand.  Return the canonical value as a worst case.
16606         (memrefs_conflict_p): Walk canonical value's locs.
16608         PR debug/52001
16609         * cselib.c (preserve_only_constants): Rename to...
16610         (preserve_constants_and_equivs): ... this.  Split out...
16611         (invariant_or_equiv_p): ... this.  Preserve plus expressions
16612         of other preserved expressions too.
16613         (cselib_reset_table): Adjust.
16614         * var-tracking.c (reverse_op): Use canonical value to build
16615         reverse operation.
16617 2012-02-23  Kai Tietz  <ktietz@redhat.com>
16619         * config/i386/i386.c (ix86_delegitimize_address): Handle
16620         UNSPEC_PCREL plus displacement.
16622 2012-02-24  Georg-Johann Lay  <avr@gjlay.de>
16624         PR target/52261
16625         * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
16626         to test for unusedness in st X addressing.
16628 2012-02-24  Richard Guenther  <rguenther@suse.de>
16630         PR middle-end/52361
16631         * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
16632         (is_gimple_reg_type): Move inline ...
16633         * gimple.h (is_gimple_reg_type): ... here.
16635 2012-02-24  Richard Guenther  <rguenther@suse.de>
16637         PR middle-end/52361
16638         * passes.c (execute_function_todo): When verifying SSA form
16639         verify gimple form first.
16640         * tree-ssa.c (verify_ssa): Do not verify gimple form here.
16642 2012-02-24  Richard Guenther  <rguenther@suse.de>
16644         PR middle-end/52355
16645         * fold-const.c (fold_addr_of_array_ref_difference): New function.
16646         (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
16648 2012-02-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16650         * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
16652 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16654         * tree-phinodes.c (make_phi_node): Mark static.
16655         * tree-flow.h (make_phi_node): Remove extern decl.
16656         * doc/gimple.texi (make_phi_node): Remove documentation.
16658 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16660         * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
16661         * tree-ssa-sccvn.c (print_scc): Ditto.
16663 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16665         * doc/passes.texi (Full redundancy elimination): Fix typo.
16667 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16669         * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
16671 2012-02-23  Eric Botcazou  <ebotcazou@adacore.com>
16673         PR bootstrap/52287
16674         * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
16676 2012-02-23  Uros Bizjak  <ubizjak@gmail.com>
16678         PR c/52290
16679         * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
16681 2012-02-23  Georg-Johann Lay  <avr@gjlay.de>
16683         * config/avr/avr.md (code_stdname): Add ior, xor.
16684         (xior): New code iterator.
16685         (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
16686         (*<code_stdname><mode>qi.byte1-3): Ditto.
16688 2012-02-23  Jakub Jelinek  <jakub@redhat.com>
16690         PR tree-optimization/52019
16691         * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
16692         CLOBBER stmts.
16694 2012-02-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16696         * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
16697         HAVE_INITFINI_ARRAY to work around namespace pollution in
16698         certain versions of newlib system headers.
16699         * config.in: Regenerate.
16700         * configure: Regenerate.
16701         * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
16702         instead of HAVE_INITFINI_ARRAY.
16704 2012-02-22  Uros Bizjak  <ubizjak@gmail.com>
16706         PR target/52330
16707         * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
16708         is not offsettable memory reference.
16710 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
16712         PR target/18145
16713         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
16714         setting avr_need_clear_bss_p for __gnu_lto* symbols.
16716 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
16718         * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
16719         * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
16721 2012-02-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16723         * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
16724         library on Solaris 8 even without TLS support.
16725         * configure: Regenerate.
16727 2012-02-22  Richard Guenther  <rguenther@suse.de>
16729         PR middle-end/52329
16730         * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
16731         for GIMPLE_DEBUG stmts.
16733 2012-02-22  Martin Jambor  <mjambor@suse.cz>
16735         PR middle-end/51782
16736         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
16737         according to the base object.
16739 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
16741         PR rtl-optimization/50063
16742         * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
16743         and 2 (8-bit SP) in operand 2.
16744         * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
16745         setup to use movhi_sp_r instead of vanilla move to write SP.
16746         Adjust REG_CFA notes to superseed unspec.
16747         (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
16748         of vanilla move.
16749         As function body might contain CLI or SEI: Use irq_state 0 (IRQ
16750         known to be off) only with TARGET_NO_INTERRUPTS. Never use
16751         irq_state 1 (IRQ known to be on) here.
16753 2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>
16755         * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
16756         WORDS_BIG_ENDIAN.
16757         * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
16758         assign_hard_reg): Likewise.
16760 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
16762         * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
16764 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
16766         * config/avr/avr.md
16767         (*dec-and-branchhi!=-1.d.clobber): New text peephole.
16768         (*dec-and-branchhi!=-1.l.clobber): New text peephole.
16770 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
16772         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
16773         prototype from here to...
16774         * config/avr/avr.h: ...here.
16776 2012-02-21  Richard Earnshaw  <rearnsha@arm.com>
16778         PR target/52294
16779         * thumb2.md (thumb2_shiftsi3_short): Split register and
16780         immediate shifts.  For register shifts tie operands 0 and 1.
16781         (peephole2 for above): Check that register-controlled shifts
16782         have suitably tied operands.
16784 2012-02-21  Quentin Neill  <quentin.neill@amd.com>
16786         PR target/52137
16787         * config/i386/bdver1.md (bdver1_call, bdver1_push,
16788         bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
16789         bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
16790         bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
16791         bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
16792         bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
16793         bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
16794         bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
16795         bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
16796         bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
16797         bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
16798         bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
16799         bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
16800         bdver1_ssevector_avx256_unaligned_load,
16801         bdver1_ssevector_sse128_unaligned_load,
16802         bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
16803         bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
16804         bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
16805         bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
16806         bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
16807         bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
16808         bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
16809         bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
16810         bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
16811         bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
16812         bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
16813         bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
16814         bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
16815         bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
16816         bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
16817         bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
16818         bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
16819         bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
16820         bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
16821         bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
16822         bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
16823         bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
16824         bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
16825         bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
16826         bdver1_ssediv_double_load, bdver1_ssediv_double,
16827         bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
16828         Add "bdver2" attribute.
16830 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16832         * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
16833         default if possible and not specified otherwise.
16835 2012-02-21  Richard Guenther  <rguenther@suse.de>
16837         PR middle-end/52314
16838         * gimplify.c (create_tmp_from_val): Use the main variant type
16839         for the type of the temporary we create.
16841 2012-02-21  Richard Guenther  <rguenther@suse.de>
16843         PR tree-optimization/52324
16844         * gimplify.c (gimplify_expr): When re-gimplifying expressions
16845         do not gimplify a MEM_REF address operand if it is already
16846         in suitable form.
16848 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16850         * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
16851         TARGET_HARD_FLOAT with TARGET_HARD_DFP.
16853 2012-02-21  Richard Guenther  <rguenther@suse.de>
16855         * tree-vect-stmts.c (vectorizable_load): Use pre-computed
16856         nested_in_vect_loop.
16858 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
16860         PR tree-optimization/52318
16861         * gimple-fold.c (gimplify_and_update_call_from_tree): Add
16862         vdef also to non-pure/const call stmts in the sequence.
16864 2012-02-21  Tristan Gingold  <gingold@adacore.com>
16866         * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
16868 2012-02-20  David S. Miller  <davem@davemloft.net>
16870         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
16871         don't use the "rd %pc" instruction on v9 for PIC register loads.
16873 2012-02-20  Aldy Hernandez  <aldyh@redhat.com>
16875         PR middle-end/52141
16876         * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
16877         in a transaction safe function.
16879 2012-02-20  Kai Tietz  <ktietz@redhat.com>
16881         PR target/52238
16882         * stor-layout.c (place_field): Handle desired_align for
16883         ms-bitfields, too.
16885 2012-02-20  Richard Guenther  <rguenther@suse.de>
16887         PR tree-optimization/52298
16888         * tree-vect-stmts.c (vectorizable_store): Properly use
16889         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
16890         outer loops.
16891         (vectorizable_load): Likewise.
16892         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
16893         Access DR_STEP after ensuring it is not NULL.
16895 2012-02-20  Jakub Jelinek  <jakub@redhat.com>
16897         PR tree-optimization/52286
16898         * fold-const.c (fold_binary_loc): For (X & C1) | C2
16899         optimization use double_int_to_tree instead of build_int_cst_wide,
16900         rewrite to use double_int vars.
16902 2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16904         PR target/50166
16905         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
16906         Define _start.
16907         Remove -e 0 from $gcc_cv_ld invocation.
16908         Only use __GLIBC_PREREQ if defined.
16909         Enable on Solaris since Solaris 8 patch.
16910         (gcc_SUN_LD_VERSION): New macro.
16911         * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
16912         gcc_SUN_LD_VERSION for version number format.
16913         * configure: Regenerate.
16914         * varasm.c (get_elf_initfini_array_priority_section): Set
16915         SECTION_NOTYPE for non-default priority.
16916         Use get_section instead of get_unnamed_section to emit
16917         .init_array/.fini_array with default priority.
16919 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
16921         * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
16922         (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
16923         (mips_start_unique_function, mips_output_mips16_rdhwr)
16924         (mips_code_end): New functions.
16925         (TARGET_ASM_CODE_END): Define.
16927 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
16929         * config/mips/mips.c (mips16_build_call_stub): Add CFI information
16930         to stubs with non-sibling calls.
16932 2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>
16934         * doc/invoke.texi (-fira-* options): Copy-edit.
16935         (ira-* parameters): Copy-edit.
16937 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
16939         * doc/invoke.texi: Minor copy-edits to bring into conformance with
16940         GCC coding conventions.
16942 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
16944         * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
16945         when used as adjectives.
16947 2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>
16949         * doc/invoke.texi: Clean up "that"/"which" confusion.
16951 2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>
16953         * system.h: Poison SMALL_REGISTER_CLASSES
16954         * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
16955         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
16957 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
16959         PR tree-optimization/52285
16960         * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
16961         when deciding if a call is a tail call or tail recursion.
16963 2012-02-16  Kai Tietz  <ktietz@redhat.com>
16965         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
16966         interger-constant displacement for UNSPEC_PCREL.
16968 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
16970         PR rtl-optimization/52208
16971         * ira-costs.c (scan_one_insn): Don't decrease mem_cost
16972         for MEMs with REG_EQUIV, if the MEM isn't general_operand.
16974         PR tree-optimization/52255
16975         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
16976         loop->header has virtual PHI, but exit_e->dest doesn't, add
16977         virtual PHI to exit_e->dest and adjust all uses after the loop.
16979         PR debug/52260
16980         * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
16981         children with clone_tree_hash, not after it.
16983 2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>
16985         * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
16986         extended identifiers.
16988 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
16990         PR middle-end/51929
16991         * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
16992         a same_body_alias, also test whether e->callee isn't a former
16993         or current clone of the decl this is a same body alias of.
16995         PR translation/52264
16996         * cgraphunit.c (verify_cgraph_node): Fix a typo.
16998 2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>
17000         * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
17002 2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
17004         PR target/52199
17005         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
17006         force_reg instead of copy_to_reg for better optimization.  Force
17007         non-register or memory operands into a register.
17009 2012-02-15  Andrew MacLeod  <amacleod@redhat.com>
17011         * extend.texi: Reserve upper bits of memory model for future use.
17013 2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
17014             Anatoly Sokolov <aesok@post.ru>
17015             Eric Weddington <eric.weddington@atmel.com>
17017         PR target/52261
17018         * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
17019         avrxmega4, avrxmega5, avrxmega6, avrxmega7.
17020         Rewrite initializers for .macro.
17021         * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
17022         avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
17023         atxmega32d4, atxmega32x1.
17024         avrxmega4: atxmega64a3, atxmega64d3.
17025         avrxmega5: atxmega64a1, atxmega64a1u.
17026         avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
17027         atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
17028         avrxmega7: atxmega128a1, atxmega128a1u.
17029         * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
17030         ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
17031         (struct base_arch_s): Rename reserved to xmega_p.
17032         Rename reserved2 to have_rampd.
17033         (AVR_XMEGA): New define.
17034         (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
17035         (AVR_HAVE_RAMPZ): Change definition to fit xmega.
17036         * config/avr/predicates.md (io_address_operand): Take into
17037         account SFR offset.
17038         (low_io_address_operand): Ditto.
17039         (high_io_address_operand): Ditto.
17040         * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
17041         (enabled, movhi_sp_r): Use them.
17042         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
17043         cpp_define_formatted to built-in define __AVR_ARCH__.
17044         (__AVR_XMEGA__): New built-in define.
17045         (__AVR_HAVE_RAMPD__): New built-in define.
17046         (__AVR_HAVE_RAMPX__): New built-in define.
17047         (__AVR_HAVE_RAMPY__): New built-in define.
17048         (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
17050         * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
17051         (avr_option_override): Initialize them.
17052         (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
17053         (avr_init_expanders): Initialize them. No more block several calls.
17054         (emit_push_sfr): New static function.
17055         (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
17056         Handle AVR_XMEGA.
17057         (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
17058         (avr_print_operand): Print addreeses as symbols for
17059         RAMPX, RAMPY, RAMPD, CCP.
17060         (output_movhi): Handle AVR_XMEGA when writing to SP.
17061         (avr_out_movhi_mr_r_xmega): New static function.
17062         (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
17063         (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
17064         __RAMPD__,  __CCP__ as needed.
17066         * config/avr/multilib.h: Regenerate.
17067         * config/avr/t-multilib: Regenerate.
17068         * config/avr/avr-tables.opt: Regenerate.
17070 2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>
17072         PR tree-optimization/50561
17073         * graphite-flattening.c (lst_project_loop): Do not
17074         remove old scattering dimensions after flattening.
17075         (lst_do_flatten): Likewise.
17077 2012-02-15  Georg-Johann Lay  <avr@gjlay.de>
17079         * doc/extend.texi (AVR Built-in Functions): Remove doc for
17080         __builtin_avr_map8, __builtin_avr_map16.
17081         Document __builtin_avr_insert_bits.
17083         * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
17084         (insert_bits): New insn.
17085         (adjust_len.map_bits): Rename to insert_bits.
17086         (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
17087         * avr-protos.h (avr_out_map_bits): Remove.
17088         (avr_out_insert_bits, avr_has_nibble_0xf): New.
17089         * config/avr/constraints.md (Cxf,C0f): New.
17090         * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
17091         defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
17092         New built-in define __BUILTIN_AVR_INSERT_BITS.
17093         * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
17094         (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
17095         (avr_move_bits): Rewrite.
17096         (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
17097         functions.
17098         (avr_map_op_t): New typedef.
17099         (avr_map_op): New static variable.
17100         (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
17101         (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
17102         (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
17103         (bdesc_3arg, avr_expand_triop_builtin): New.
17104         (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
17105         (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
17106         (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
17107         (avr_map_equal_p, avr_map_sig_p): Remove.
17108         (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
17109         (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
17110         (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
17111         (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
17112         (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
17113         (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
17115 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
17117         * config/c6x/c6x.md (reserve_cycles): New attribute.
17118         * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
17119         don't reserve functional units after the branch occurs.
17121 2012-02-14  Aldy Hernandez  <aldyh@redhat.com>
17123         PR middle-end/52142
17124         * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
17125         functions into non-tm_pure functions.
17127 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
17129         PR lto/52178
17130         * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
17131         (iterative_hash_canonical_type): Likewise.
17132         * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
17133         the dead edges.
17135 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
17137         * haifa-sched.c (prune_ready_list): Ensure that if there is a
17138         sched-group insn, it either remains alone or the entire list is pruned.
17140 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
17142         * doc/install.texi (Prerequisites): Fix grammar.
17143         (Configuration): Likewise.
17145 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
17147         * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
17148         MPC as part of GCC before describing configuring with --with-gmp etc.
17149         (Installing GCC: Configuration): --with-gmp etc. aren't needed if
17150         sources are present.
17152 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
17154         PR debug/51950
17155         * dwarf2out.c (clone_tree_hash): New function.
17156         (copy_decls_walk): Use it instead of clone_tree.
17158 2012-02-14  Richard Guenther  <rguenther@suse.de>
17160         PR tree-optimization/52244
17161         PR tree-optimization/51528
17162         * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
17163         replacements for integral types.
17165 2012-02-14  Walter Lee  <walt@tilera.com>
17167         * config.gcc: Handle tilegx and tilepro.
17168         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
17169         tilegx and tilepro.
17170         Add HAVE_AS_TLS check for tilegx and tilepro.
17171         * configure: Regenerate.
17172         * doc/contrib.texi: Add Mat Hostetter and self.
17173         * doc/extend.texi (TILE-Gx Built-in Functions): New node.
17174         Document instruction intrinsics and network accessing intrinsics.
17175         (TILEPro Built-in Functions): New node.  Document instruction
17176         intrinsics and network accessing intrinsics.
17177         * doc/install.texi (Specific, tilegx-*-linux*): Document it.
17178         (Specific, tilepro-*-linux*): Likewise.
17179         * doc/invoke.texi (TILE-Gx Options): New section.
17180         (TILEPro Options): New section.
17181         * doc/md.texi (TILE-Gx): New section.
17182         (TILEPro): New section.
17183         * common/config/tilegx/tilegx-common.c: New file.
17184         * common/config/tilepro/tilepro-common.c: New file.
17185         * config/tilegx/constraints.md: New file.
17186         * config/tilegx/linux.h: New file.
17187         * config/tilegx/mul-tables.c: New file.
17188         * config/tilegx/predicates.md: New file.
17189         * config/tilegx/sync.md: New file.
17190         * config/tilegx/t-tilegx: New file.
17191         * config/tilegx/tilegx-builtins.h: New file.
17192         * config/tilegx/tilegx-c.c: New file.
17193         * config/tilegx/tilegx-generic.md: New file.
17194         * config/tilegx/tilegx-modes.def: New file.
17195         * config/tilegx/tilegx-multiply.h: New file.
17196         * config/tilegx/tilegx-protos.h: New file.
17197         * config/tilegx/tilegx.c: New file.
17198         * config/tilegx/tilegx.h: New file.
17199         * config/tilegx/tilegx.md: New file.
17200         * config/tilegx/tilegx.opt: New file.
17201         * config/tilepro/constraints.md: New file.
17202         * config/tilepro/gen-mul-tables.cc: New file.
17203         * config/tilepro/linux.h: New file.
17204         * config/tilepro/mul-tables.c: New file.
17205         * config/tilepro/predicates.md: New file.
17206         * config/tilepro/t-tilepro: New file.
17207         * config/tilepro/tilepro-builtins.h: New file.
17208         * config/tilepro/tilepro-c.c: New file.
17209         * config/tilepro/tilepro-generic.md: New file.
17210         * config/tilepro/tilepro-modes.def: New file.
17211         * config/tilepro/tilepro-multiply.h: New file.
17212         * config/tilepro/tilepro-protos.h: New file.
17213         * config/tilepro/tilepro.c: New file.
17214         * config/tilepro/tilepro.h: New file.
17215         * config/tilepro/tilepro.md: New file.
17216         * config/tilepro/tilepro.opt: New file.
17218 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
17220         PR tree-optimization/52210
17221         * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
17222         vect_model_simple_cost with two entry vect_def_type array instead
17223         of an address of dt.
17225 2012-02-14  Richard Guenther  <rguenther@suse.de>
17227         PR lto/52178
17228         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
17229         Do not stream DECL_QUALIFIER.
17230         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
17231         * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
17232         (find_decls_types_r): Do not walk DECL_QUALIFIER.
17234 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
17236         PR c/52181
17237         * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
17238         newdecl.
17240 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
17242         PR bootstrap/52172
17243         * cselib.h (cselib_subst_to_values_from_insn): New prototype.
17244         * cselib.c (cselib_subst_to_values_from_insn): New function.
17245         * sched-deps.c (add_insn_mem_dependence,
17246         sched_analyze_1, sched_analyze_2): Use it.
17248 2012-02-13  Jan Hubicka  <jh@suse.cz>
17250         PR middle-end/52214
17251         * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
17253 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
17255         * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
17256         (GTM_SELF_SPECS): Define if not already defined.
17257         (driver_self_specs): Add GTM_SELF_SPECS.
17258         * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
17259         (GTM_SELF_SPECS): Define.
17260         * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
17261         * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
17263 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
17265         * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
17266         away if seen.
17268         * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
17270         PR middle-end/52230
17271         * omp-low.c (expand_omp_for): If a static schedule without chunk size
17272         has NULL region->cont, force fd.chunk_size to be integer_zero_node.
17274 2012-02-13  Andrew MacLeod  <amacleod@redhat.com>
17276         PR c/52190
17277         * doc/extend.texi : Fix another __atomic_compare_exchange typo.
17279 2012-02-13  Richard Guenther  <rguenther@suse.de>
17281         PR translation/52211
17282         * passes.c (enable_disable_pass): Fix typo.
17284 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
17286         PR middle-end/52209
17287         * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
17288         XOR for reduce_bit_field if type is unsigned.
17290 2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>
17292         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
17293         disallow changes from SFmode to mode with different size in FP regs.
17295 2012-02-12  Robert Millan  <rmh@gnu.org>
17296             Gerald Pfeifer <gerald@pfeifer.com>
17298         * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
17299         Tweak comment.
17301 2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
17303         PR rtl-optimization/52175
17304         * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
17305         to frame-related instructions.
17307 2012-02-10  Jason Merrill  <jason@redhat.com>
17309         PR c++/51910
17310         * tlink.c (demangled_hash_entry): Change mangled to a VEC.
17311         (demangle_new_symbols): Fill it.
17312         (scan_linker_output): Walk it.
17313         (start_tweaking): Split out from scan_linker_output.
17314         (maybe_tweak): Update sym->chosen.
17315         * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
17317 2012-02-11  Jakub Jelinek  <jakub@redhat.com>
17319         PR debug/52132
17320         * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
17322 2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
17324         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
17325         having the same mode as previous compare.
17327 2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>
17329         * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
17330         * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
17331         (nonlocal_goto_internal): Likewise.
17332         (nonlocal_goto): Emit a use and an indirect jump directly.
17334 2012-02-10  Andrew MacLeod  <amacleod@redhat.com>
17336         PR c/52190
17337         * doc/extend.texi : Update comments for __atomic_compare_exchange and
17338         __atomic_{is,always}_lock_free.
17340 2012-02-10  Uros Bizjak  <ubizjak@gmail.com>
17342         PR target/52146
17343         * config/i386/i386.c (ix86_legitimate_address_p): Disallow
17344         negative constant address for TARGET_X32.
17346 2012-02-10  Richard Henderson  <rth@redhat.com>
17348         * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
17349         * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
17350         for GIMPLE_TRANSACTION.  Tidy if's into a switch.
17352 2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17353             Ira Rosen  <irar@il.ibm.com>
17355         PR tree-optimization/50031
17356         * targhooks.c (default_builtin_vectorization_cost): Handle
17357         vec_promote_demote.
17358         * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
17359         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
17360         all types of reduction and pattern statements.
17361         (vect_estimate_min_profitable_iters): Likewise.
17362         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
17363         (vect_get_load_cost): Use vec_perm for permutations; add dump logic
17364         for explicit realigns.
17365         (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
17366         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
17367         vec_promote_demote.
17368         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
17369         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
17370         vec_perm for VSX and handle vec_promote_demote.
17372 2012-02-10  Jakub Jelinek  <jakub@redhat.com>
17374         PR middle-end/52177
17375         * builtins.c (fold_builtin_atomic_always_lock_free,
17376         expand_builtin_atomic_always_lock_free,
17377         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
17378         Return and/or test boolean_true_node/boolean_false_node instead of
17379         integer_one_node/integer_zero_node.
17381 2012-02-10  Jan Hubicka  <jh@suse.cz>
17383         PR middle-end/48600
17384         * predict.c (predict_paths_for_bb): Prevent looping.
17385         (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
17387 2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>
17389         * config/arm/arm.c (output_move_double): In one case properly
17390         count number of instructions that will be emitted.
17392 2012-02-10  Richard Guenther  <rguenther@suse.de>
17394         PR translation/52193
17395         * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
17397 2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
17399         PR middle-end/52140
17400         * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
17402 2012-02-09  Jakub Jelinek  <jakub@redhat.com>
17404         PR debug/52165
17405         * var-tracking.c (emit_note_insn_var_location): If
17406         EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
17407         emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
17408         non-NOTE_DURING_CALL_P insn.
17410 2012-02-09  Bin Cheng  <bin.cheng@arm.com>
17412         PR middle-end/51867
17413         * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
17415 2012-02-08  Magnus Granberg  <zorry@gentoo.org>
17417         PR driver/48524
17418         * gcc.c (switch_matches) Support switches with separated form,
17419         -D and -U.
17421 2012-02-08  Georg-Johann Lay  <avr@gjlay.de>
17423         * config/avr/avr.md (SREG_ADDR): Remove constant definition.
17424         (SP_ADDR): Ditto.
17425         (RAMPZ_ADDR): Ditto.
17426         * config/avr/avr.c (avr_addr_t): New typedef.
17427         (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
17428         (avr_init_expanders): Initialize it.
17429         (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
17430         SREG_ADDR.
17431         (expand_epilogue): Ditto.
17432         (avr_print_operand): Ditto.
17433         (avr_file_start): Ditto.
17434         (avr_emit_movmemhi): Ditto.
17436 2012-02-08  Richard Guenther  <rguenther@suse.de>
17438         PR tree-optimization/46886
17439         * tree-flow.h (do_while_loop_p): Declare.
17440         * tree-ssa-loop-ch.c (do_while_loop_p): Export.
17441         * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
17443 2012-02-08  Andrew MacLeod  <amacleod@redhat.com>
17445         * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
17446         always succeed for integers larger than a native word.
17448 2012-02-08  Richard Guenther  <rguenther@suse.de>
17450         PR rtl-optimization/52170
17451         * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
17452         properly handle integer vector modes.
17454 2012-02-08  Jakub Jelinek  <jakub@redhat.com>
17456         PR gcov-profile/52150
17457         * coverage.c: Include target.h.
17458         (build_var): Call targetm.strip_name_encoding on the assembler name.
17459         Change one _ into . or $ if the target allows it.
17460         * Makefile.in (coverage.o): Depend on $(TARGET_H).
17462         PR rtl-optimization/52139
17463         * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
17464         is a BARRIER after emit_insn_after_noloc, move BB_END
17465         to the last non-BARRIER insn before it.
17467 2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>
17469         PR middle-end/24306
17470         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
17471         (mips_gimplify_va_arg_expr): Call it instead of
17472         std_gimplify_va_arg_expr.
17474 2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
17476         * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
17477         message for -mno-pointers-to-nested-function.
17479 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
17481         PR middle-end/51994
17482         * expr.c (get_inner_reference): If there is an offset, add a negative
17483         bit position to it (if any).
17485 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
17487         PR rtl-optimization/52060
17488         * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
17489         copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
17490         before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
17491         and/or i0src_copy2 when needed.
17493 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
17495         * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
17496         or LTOPLUGINSONAME if have_c.
17498         * config/freebsd-spec.h: Add comment about what macros can be defined
17499         in this header.
17500         (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
17501         * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
17502         here instead.
17504 2012-02-07  Richard Guenther  <rguenther@suse.de>
17506         * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
17507         newline in -alias dumps.
17509 2012-02-07  Kai Tietz  <ktietz@redhat.com>
17510             Dave Korn  <dave.korn.cygwin@gmail.com>
17512         PR target/40068
17513         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
17514         Take care that typinfo gets dllexport-attribute.
17516 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
17518         PR middle-end/52074
17519         * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
17520         if modifier < EXPAND_SUM call force_operand on the result.
17522 2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>
17524         * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
17525         adding __forwarder_dst__ prefix if a forwarder_section attribute is
17526         present.
17527         (epiphany_function_type): Replace types for specific interrupts with
17528         EPIPHANY_FUNCTION_INTERRUPT.
17529         (EPIPHANY_INTERRUPT_P): Update.
17530         * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
17531         New static function.
17532         (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
17533         <disinterrupt>: Affects type identity.
17534         (epiphany_handle_interrupt_attribute): Handle variable number of
17535         arguments.
17536         (epiphany_compute_function_type): Update for new
17537         epiphany_function_type definition.
17538         (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
17539         handlers with a longcall forwarder.
17540         (epiphany_start_function): Handle multiple interrupt arguments and/or
17541         forwarder_section attribute.
17543         * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
17544         libgloss.
17546 2012-02-07  Alan Modra  <amodra@gmail.com>
17548         PR target/52107
17549         * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
17550         subregs of TFmode.
17552 2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17554         PR tree-optimization/50969
17555         * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
17556         use vec_perm rather than vector_stmt.
17557         (vect_model_load_cost): Likewise.
17558         * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
17559         vec_perm to be the same as other vector statements.
17560         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
17561         cost of vec_perm for TARGET_VSX.
17563 2012-02-06  Richard Guenther  <rguenther@suse.de>
17565         PR tree-optimization/52115
17566         * tree-sra.c (access_has_replacements_p): New function.
17567         (sra_modify_assign): Use it to decide whether a use is uninitialized.
17569 2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>
17571         PR middle-end/52047
17572         * trans-mem.c (expand_call_tm): Add an assertion.
17573         * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
17574         functions.
17576 2012-02-06  Richard Guenther  <rguenther@suse.de>
17578         PR tree-optimization/50955
17579         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
17580         raise cost of expressions that replace an address with an
17581         expression based on a different pointer.
17583 2012-02-06  Jakub Jelinek  <jakub@redhat.com>
17585         PR target/52129
17586         * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
17587         CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
17589 2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
17591         PR c++/48680
17592         * doc/invoke.texi (C++ Dialect Options): Use @option markup for
17593         -Weffc++ and specify guidelines come from second edition.
17595 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
17597         * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
17598         (sibcall_value_multiple_internal, call_split, call_internal_direct)
17599         (call_direct_split, call_value_split, call_value_internal_direct)
17600         (call_value_direct_split, call_value_multiple_split): Use jal and
17601         jal_macro attributes.
17603 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
17605         * reload1.c (reload_regs_reach_end_p): Replace with...
17606         (reload_reg_rtx_reaches_end_p): ...this function.
17607         (new_spill_reg_store): Update commentary.
17608         (emit_input_reload_insns): Don't clear new_spill_reg_store here.
17609         (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
17610         before setting new_spill_reg_store.
17611         (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
17612         Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
17613         Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
17614         for non-spill reload registers.
17616 2012-02-05  Ira Rosen  <irar@il.ibm.com>
17618         PR tree-optimization/52091
17619         * tree-vectorizer.h (vect_is_simple_use): Add an argument.
17620         (vect_is_simple_use_1): Likewise.
17621         * tree-vect-loop.c (vectorizable_reduction): Update calls
17622         to vect_is_simple_use_1 and vect_is_simple_use.
17623         (vectorizable_live_operation): Likewise.
17624         * tree-vect-patterns.c (widened_name_p,
17625         vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
17626         * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
17627         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
17628         vectorizable_shift,vectorizable_operation, vectorizable_store,
17629         vectorizable_load): Likewise.
17630         (vect_is_simple_cond): Add an argument, pass it to
17631         vect_is_simple_use_1.
17632         (vectorizable_condition): Update calls to vect_is_simple_cond,
17633         vect_is_simple_use.
17634         (vect_is_simple_use): Add an argument, the statement in which
17635         OPERAND is used.  Check that if OPERAND's def stmt is a double
17636         reduction phi node, the use is a phi node too.
17637         (vect_is_simple_use_1): Add an argument, pass it to
17638         vect_is_simple_use.
17639         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
17640         to vect_is_simple_use.
17642 2012-02-04  Jakub Jelinek  <jakub@redhat.com>
17644         PR rtl-optimization/52095
17645         * modulo-sched.c (dump_insn_locator): New function.
17646         (loop_canon_p, sms_schedule): Use it.
17648         PR rtl-optimization/52113
17649         * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
17650         even for decomposable shift/zext insns.
17652 2012-02-03  Jakub Jelinek  <jakub@redhat.com>
17653             Zdenek Dvorak  <ook@ucw.cz>
17655         PR rtl-optimization/52092
17656         * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
17657         on get_iv_value result.
17659 2012-02-02  Andrew Pinski  <apinski@cavium.com>
17661         PR middle-end/47982
17662         PR middle-end/43967
17663         * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
17665 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
17667         PR middle-end/48071
17668         * diagnostic.c (diagnostic_finish): Remove trailing newlines.
17670 2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>
17672         PR rtl-optimization/49800
17673         * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
17674         (sched_finish): Call regstat_free_n_sets_and_refs.
17676 2012-02-02  Jia Liu  <proljc@gmail.com>
17678         * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
17679         than operand 2.
17681 2012-02-02  Jan Hubicka  <jh@suse.cz>
17682             Tom de Vries  <tom@codesourcery.com>
17684         PR middle-end/51998
17685         * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
17686         * varpool.c (varpool_analyze_pending_decls): Likewise.
17688 2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
17689             Jayant R Sonar <jayant.sonar@kpitcummins.com>
17691         * config.gcc: Add cr16-* support.
17693         * doc/extend.texi: Document cr16 extensions.
17694         * doc/install.texi: Document cr16 install.
17695         * doc/invoke.texi: Document cr16 options.
17696         * doc/md.texi: Document cr16 constraints.
17698         * common/config/cr16/cr16-common.c: New file.
17699         * config/cr16/cr16.c: New file.
17700         * config/cr16/cr16.h: New file.
17701         * config/cr16/cr16.md: New file.
17702         * config/cr16/cr16.opt: New file.
17703         * config/cr16/cr16-protos.h: New file.
17704         * config/cr16/predicates.md: New file.
17705         * config/cr16/constraints.md: New file.
17706         * config/cr16/t-cr16: New file.
17708 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
17710         PR target/52086
17711         * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
17712         that operands[2] is either immediate, or q_regs_operand.
17714         PR tree-optimization/52073
17715         * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
17716         a pattern stmt for pattern uses, ignore uses outside of the loop.
17718 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
17720         * config/avr/avr.c: Resolve all AS1 and AS2 macros.
17721         * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
17722         (OUT_AS1, OUT_AS2): Remove.
17724 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
17726         PR rtl-optimization/51374
17727         * combine.c (can_combine_p): Don't allow volatile_refs_p insns
17728         to cross other volatile_refs_p insns.
17730 2012-02-01  Richard Guenther  <rguenther@suse.de>
17732         * doc/invoke.texi (fno-inline): Clarify documentation.
17733         (finline-small-functions): Likewise.
17734         (finline-functions): Likewise.
17735         * common.opt (finline): Adjust comment and documentation.
17736         (finline-small-functions): Clarify documentation.
17737         (finline-functions): Likewise.
17738         (finline-functions-called-once): Likewise.
17740 2012-02-01  Tristan Gingold  <gingold@adacore.com>
17742         * c-typeck.c (composite_type): Keep mode for pointers.
17744 2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>
17746         * function.h (regno_reg_rtx): Adjust comment.
17747         * reginfo.c (init_reg_modes_target): Only use the previous mode
17748         if it fits within one register.  Remove MIPS comment.
17750 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
17752         PR bootstrap/52058
17753         * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
17755 2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17757         * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
17758         to srak instruction.
17760 2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
17762         * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
17764 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
17766         PR bootstrap/52041
17767         PR bootstrap/52039
17768         PR target/51974
17769         * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
17771 2012-01-31  Richard Guenther  <rguenther@suse.de>
17773         PR tree-optimization/51528
17774         * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
17775         assigns.
17777 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
17779         PR bootstrap/52041
17780         PR bootstrap/52039
17781         PR target/51974
17782         * ree.c (add_removable_extension): Change def_map argument
17783         to unsigned *, store in def_map 1 + offset into *insn_list vector
17784         instead of pointers into the vector.
17785         (find_removable_extensions): Adjust caller.
17787 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
17789         * config/avr/avr.md: Resolve all AS1 and AS2 macros.
17790         Transform all "* quoted-c-code" to { c-code }.
17791         Remove redundant test for "optimize" in combine patterns.
17792         Move (include "avr-dimode.md") to end of file.
17794 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
17796         PR target/51835
17797         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
17798         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
17800 2012-01-30  Richard Guenther  <rguenther@suse.de>
17802         PR tree-optimization/52028
17803         * tree-loop-distribution.c (ldist_gen): Properly update
17804         virtual SSA form.
17806 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
17808         PR debug/52027
17809         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
17810         set_cur_line_info_table if not emitting debug info.
17812         PR tree-optimization/52046
17813         * tree-vect-patterns.c (check_bool_pattern): Give up if
17814         a comparison could throw.
17816         PR debug/52048
17817         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
17819 2012-01-30  Richard Guenther  <rguenther@suse.de>
17821         PR tree-optimization/52045
17822         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
17823         SSA form if cfgcleanup did anything.
17825 2012-01-30  Richard Guenther  <rguenther@suse.de>
17827         PR tree-optimization/52045
17828         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
17829         before computing final todo.
17831 2012-01-30  Richard Guenther  <rguenther@suse.de>
17833         PR tree-optimization/51528
17834         * tree-sra.c (sra_modify_assign): Re-factor in preparation
17835         for PR51528 fix.
17837 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
17839         * df-problems.c (df_kill_notes): Check that the use refers
17840         to the note under examination.
17842 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
17844         PR target/51920
17845         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
17846         parameter and use short-lived pseudos.
17847         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
17848         (sparc_expand_vector_init): Const-ify local variables and adjust
17849         calls to above functions.
17851 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
17853         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
17855 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
17857         * doc/invoke.texi: Make usage of "compile time" and
17858         "run time"/"runtime" consistent throughout the file.
17860 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
17862         * config/alpha/alpha.c (alpha_option_override): Default to
17863         full IEEE compliance mode for Go language.
17865 2012-01-29  Tijl Coosemans  <tijl@coosemans.org>
17867         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
17868         (LINK_SSP_SPEC): Define.
17870 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17872         PR target/51871
17873         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
17874         stubs.
17876 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
17878         * doc/invoke.texi: Correct hyphenation of "floating point",
17879         "double precision", and related terminology throughout the file.
17881 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
17883         PR target/52006
17884         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
17885         arm_general_register_operand predicate for operand 2 instead of
17886         register_operand.
17888 2012-01-27  Ian Lance Taylor  <iant@google.com>
17890         PR go/47656
17891         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
17892         * builtins.c (expand_builtin_init_trampoline): Add onstack
17893         parameter.  Change caller.
17894         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
17895         * tree.c (build_common_builtin_nodes): Declare
17896         __builtin_init_heap_trampoline.
17898 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
17900         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
17901         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
17902         * config/avr/avr.c: Ditto.
17903         (avr_regnames): Remove because unused.
17904         * config/avr/avr.md (*cpse.ne): New peephole.
17905         (*cpse.eq): New peephole from former cpse peepholes.
17907 2012-01-27  Michael Eager  <eager@eagercon.com>
17909         * config/microblaze.c (microblaze_emit_compare): Correct
17910         test after pcmp instruction.
17912 2012-01-27  Richard Guenther  <rguenther@suse.de>
17914         PR tree-optimization/52020
17915         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
17917 2012-01-27  Richard Guenther  <rguenther@suse.de>
17919         * ipa-pure-const.c (check_stmt): Clobbers do not make a
17920         function non-const/pure.
17922 2012-01-27  Richard Guenther  <rguenther@suse.de>
17924         PR tree-optimization/50444
17925         * tree-sra.c (build_ref_for_offset): Properly adjust the
17926         MEM_REF type for unaligned accesses.
17928 2012-01-27  Richard Guenther  <rguenther@suse.de>
17930         PR tree-optimization/50444
17931         * expr.c (mem_ref_refers_to_non_mem_p): New function.
17932         (expand_assignment): Use it.  Properly handle misaligned
17933         bases when expanding stores to component references.
17934         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
17935         refactor that case.
17937 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
17939         PR middle-end/51389
17940         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
17941         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
17942         * tree-data-ref.c (find_data_references_in_loop): Make static.
17943         (compute_all_dependences): Change return type to bool.  Bail out
17944         for too many datarefs in a loop.  Move the hunk resetting the data
17945         dependences vector from ...
17946         (compute_data_dependences_for_loop): ... here.  Account for
17947         compute_all_dependences returning false.
17948         (compute_data_dependences_for_bb): Likewise.
17949         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
17950         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
17952 2012-01-27  Richard Guenther  <rguenther@suse.de>
17954         PR middle-end/51959
17955         * expr.c (store_field): Use the alias-set of the scratch memory
17956         for storing to it.
17958 2012-01-27  Tom de Vries  <tom@codesourcery.com>
17960         PR tree-optimization/51990
17961         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
17962         WITH_SIZE_EXPR.
17963         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
17965 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
17967         PR debug/52001
17968         * var-tracking.c (reverse_op): Don't add any reverse operation
17969         if V already has any constant locations.
17971 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
17973         * doc/invoke.texi: Correct usage of "command line" (noun)
17974         vs "command-line" (adjective) throughout.
17976 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
17978         * doc/invoke.texi (Language Independent Options): Move
17979         -Wcoverage-mismatch blurb from here....
17980         (Warning Options): ...to here.
17982 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
17984         * config/rs6000/rs6000.c (rs6000_option_override_internal):
17985         Set rs6000_always_hint to false for 476.
17987 2012-01-27  Matthias Klose  <doko@ubuntu.com>
17989         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
17990           system root.
17991         * incpath.c (add_standard_paths): Likewise.
17993 2012-01-27  Richard Henderson  <rth@redhat.com>
17995         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
17996         * config/m68k/sync.md (atomic_test_and_set): Rename from
17997         sync_test_and_setqi and adjust the operands.
17998         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
17999         and unconditionally enable.
18001 2012-01-27  Richard Henderson  <rth@redhat.com>
18003         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
18004         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
18005         (ldstub): Rename from ldstubqi.
18006         (ldstub<I24MODE>): Remove.
18008 2012-01-27  Richard Henderson  <rth@redhat.com>
18010         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
18011         * c-cppbuiltin.c (cpp_atomic_builtins): Define
18012         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
18013         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
18014         * doc/tm.texi: Rebuild.
18016 2012-01-27  Richard Henderson  <rth@redhat.com>
18018         * optabs.c (gen_atomic_test_and_set): Remove default.
18019         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
18021 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
18023         PR rtl-optimization/51978
18024         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
18025         (combine_reaching_defs): Likewise.
18026         (struct re_info): Remove.
18027         (add_removable_extension): Remove x and data arguments,
18028         add insn, insn_list and def_map.  Use the arguments directly
18029         instead of using struct re_info.
18030         (find_removable_extensions): Don't call add_removable_extension
18031         through note_stores, instead just call it with single_set
18032         result if non-NULL.
18033         (find_and_remove_re): Pass curr_cand->expr instead of
18034         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
18036 2012-01-26  Michael Matz  <matz@suse.de>
18038         PR tree-optimization/46590
18039         * cfgexpand.c: Revert last change (r183305).
18040         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
18041         regs.
18042         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
18043         checking for emptiness.
18045 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
18047         PR middle-end/51895
18048         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
18049         non-addressable non-BLKmode base correctly.
18051 2012-01-26  Michael Matz  <matz@suse.de>
18053         PR tree-optimization/48794
18054         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
18055         regions referenced from RESX/EH_DISPATCH.
18057 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18059         * config/s390/s390.h: Make BRANCH_COST an option.
18060         * config/s390/s390.opt: New option -mbranch-cost.
18062 2012-01-26  Richard Henderson  <rth@redhat.com>
18064         Revert 2012-01-24 change:
18065         * trans-mem.c (requires_barrier): Do not instrument thread local
18066         variables and emit save/restore for them.
18068 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
18070         PR middle-end/51986
18071         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
18072         for pat == 0.
18074 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
18076         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
18077         ASM_OPERANDS.
18079 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
18081         PR target/49868
18082         Rename __pgm to __flash.
18083         Rename __pgm1 to __flash1.
18084         Rename __pgm2 to __flash2.
18085         Rename __pgm3 to __flash3.
18086         Rename __pgm4 to __flash4.
18087         Rename __pgm5 to __flash5.
18088         Rename __pgmx to __memx.
18089         * doc/extend.texi (AVR Named Address Spaces)
18090         Rename address space names as indicated above.
18091         * config/avr/avr.c (avr_addrspace): Ditto.
18093         * config/avr/avr-protos.h
18094         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
18095         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
18096         * config/avr/predicates.md: Ditto.
18097         * config/avr/avr.c Ditto, and
18098         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
18099         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
18101         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
18102         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
18103         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
18104         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
18105         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
18106         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
18107         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
18108         * config/avr/avr.c: Ditto.
18109         * config/avr/avr.md: Ditto.
18111 2012-01-25  Jason Merrill  <jason@redhat.com>
18113         PR c++/51992
18114         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
18116 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
18118         PR tree-optimization/51987
18119         * tree-data-ref.c (get_references_in_stmt): Handle references in
18120         non-volatile GIMPLE_ASM.
18122 2012-01-25  Richard Guenther  <rguenther@suse.de>
18124         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
18125         bases are dereferenced.
18127 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
18129         PR rtl-optimization/48374
18130         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
18132 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
18134         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
18135         compute_data_dependences_for_loop returns false.
18136         * tree-parloops.c (loop_parallel_p): Likewise.
18138 2012-01-25  Richard Guenther  <rguenther@suse.de>
18140         * tree.h (get_pointer_alignment_1): Declare.
18141         * builtins.c (get_pointer_alignment_1): New function.
18142         (get_pointer_alignment): Use it.
18144 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18146         PR rtl-optimization/48308
18147         * combine.c (enum undo_kind): Add UNDO_LINKS.
18148         (struct undo): Add member l to other_contents and where.
18149         (do_SUBST_LINK): New.
18150         (SUBST_LINK): New.
18151         (try_combine): Handle LOG_LINKS for the dummy i1 case.
18152         (undo_all): Handle UNDO_LINKS.
18154 2012-01-25  Richard Henderson  <rth@redhat.com>
18156         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
18157         mem inputs.
18159 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
18161         * optabs.c (gen_atomic_test_and_set): Use each argument.
18163 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
18165         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
18166         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
18167         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
18168         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
18169         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
18170         TARGET_PAIRED_SINGLE_FLOAT.
18172 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
18174         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
18175         (in_struct, return_val): Remove MEM documentation.
18176         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
18177         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
18178         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
18179         and MEM_SCALAR.
18180         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18181         * cfgexpand.c (add_alias_set_conflicts): Likewise.
18182         * expr.c (store_field): Likewise.
18183         * function.c (assign_stack_temp_for_type): Likewise.
18184         * ifcvt.c (noce_try_cmove_arith): Likewise.
18185         * reload1.c (reload): Likewise.
18186         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
18187         (alpha_set_memflags): Likewise.
18188         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
18190 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
18192         * rtl.h (true_dependence, canon_true_dependence): Remove varies
18193         parameter.
18194         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
18195         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
18196         (true_dependence_1, true_dependence, canon_true_dependence): Remove
18197         varies parameter.
18198         * cselib.c (cselib_rtx_varies_p): Delete.
18199         (cselib_invalidate_mem): Update call to canon_true_dependence.
18200         * dse.c (record_store, check_mem_read_rtx): Likewise.
18201         (scan_reads_nospill): Likewise.
18202         * cse.c (check_dependence): Likewise.
18203         (cse_rtx_varies_p): Delete.
18204         * expr.c (safe_from_p): Update call to true_dependence.
18205         * ira.c (validate_equiv_mem_from_store): Likewise.
18206         (memref_referenced_p): Likewise.
18207         * postreload-gcse.c (find_mem_conflicts): Likewise.
18208         * sched-deps.c (sched_analyze_2): Likewise.
18209         * store-motion.c (load_kills_store): Likewise.
18210         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
18211         * gcse.c (mems_conflict_for_gcse_p): Likewise.
18212         (compute_transp): Update call to canon_true_dependence.
18214 2012-01-25  Richard Henderson  <rth@redhat.com>
18216         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
18217         (maybe_emit_atomic_test_and_set): New.
18218         (expand_sync_lock_test_and_set): Use it.
18219         (expand_atomic_test_and_set): Likewise.
18220         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
18221         the implementation; clarify implementation defined details.
18222         * doc/md.texi (atomic_test_and_set): Document.
18224 2012-01-25  Richard Henderson  <rth@redhat.com>
18226         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
18228 2012-01-25  Richard Henderson  <rth@redhat.com>
18230         PR target/51968
18231         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
18232         to effect no-op split.
18234 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
18236         PR lto/51698
18237         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
18238         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
18239         (BT_FN_VOID_PTR_INT_SIZE): New.
18240         (BT_FN_UINT_UINT_VAR): Remove.
18241         (BT_FN_UINT32_UINT32_VAR): New.
18242         (BT_FN_DOUBLE_VPTR): Remove.
18243         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
18245         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
18246         (_ITM_changeTransactionMode): Same.
18247         (_ITM_memmoveRtWt): Change return type to void.
18248         (_ITM_memcpyRtWt): Same.
18249         (_ITM_memsetW): Same.
18250         (_ITM_RaRD): Change types to double.
18251         (_ITM_RD): Same.
18252         (_ITM_RaWD): Same.
18253         (_ITM_RfWD): Same.
18255         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
18257 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
18258             Patrick Marlier  <patrick.marlier@gmail.com>
18260         * trans-mem.c (requires_barrier): Do not instrument thread local
18261         variables and emit save/restore for them.
18263 2012-01-24  Jason Merrill  <jason@redhat.com>
18265         PR c++/51812
18266         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
18267         output static aliases.
18269 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
18271         PR driver/47249
18272         * common.opt (-pie, -shared, pie, shared): Change from Common to
18273         Driver.
18274         * gcc.c (display_help): Display help for -pie and -shared.
18276 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
18278         PR target/49868
18279         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
18280         Remove note on size/offset limitation.
18281         (AVR Variable Attributes): Add example how to read data located
18282         with progmem.  Refer to named address spaces.
18283         * doc/invoke.texi (AVR Options): Fix typo.
18285 2012-01-24  Richard Guenther  <rguenther@suse.de>
18287         Forward-port to trunk
18288         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
18290         PR middle-end/45678
18291         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
18292         op0 isn't sufficiently aligned and there is movmisalignM
18293         insn for mode, use it to load op0 into a temporary register.
18295 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
18297         PR target/51957
18298         * target.def (const_not_ok_for_debug_p): New hook.
18299         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
18300         documentation.
18301         * doc/tm.texi: Regenerated.
18302         * dwarf2out.c (const_ok_for_output_1): If
18303         targetm.const_not_ok_for_debug_p returns true, fail.
18304         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
18305         function.
18306         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
18308 2012-01-23  Kai Tietz  <ktietz@redhat.com>
18310         PR target/51900
18311         * config/i386/predicates.md (symbolic_operand): Allow
18312         UNSPEC_PCREL as PIC expression for lea.
18313         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
18314         * config/i386/i386.c (ix86_delegitimize_address): Handle
18315         UNSPEC_PCREL for none-MEM, too.
18317 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
18319         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
18320         (ipa_tm_create_version_alias): Same.
18322 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
18324         PR libitm/51830
18325         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
18326         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
18328 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
18329             Patrick Marlier  <patrick.marlier@gmail.com>
18330             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
18332         PR lto/51916
18333         * lto-wrapper.c (run_gcc): Pass the LTO section name to
18334         simple_object_start_read.
18336 2012-01-23  Richard Guenther  <rguenther@suse.de>
18339         PR tree-optimization/51895
18340         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
18341         parameter decomposition into BLKmode components.
18343 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
18345         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
18346         fake variables for restrict-qualified pointers whose pointed-to type
18347         contains a placeholder.
18349 2012-01-23  Richard Guenther  <rguenther@suse.de>
18351         PR tree-optimization/51949
18352         * ipa-split.c (execute_split_functions): Do not split malloc functions.
18354 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
18356         PR rtl-optimization/51933
18357         * ree.c (transform_ifelse): Return true right away if dstreg is
18358         already wider or equal to cand->mode.
18359         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
18360         (make_defs_and_copies_lists): Remove defs_list and copies_list
18361         arguments, add state argument, just truncate state->work_list
18362         instead of always allocating and freeing the vector.  Assert that
18363         get_defs succeeds instead of returning 2.  Changed return type to bool.
18364         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
18365         have ext_src_mode, see if it has been modified already with the
18366         right kind of extension and has been extended before from the
18367         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
18368         just return true.  Remember the original mode in state->modified array.
18369         (combine_reaching_defs): Add state argument.  Don't allocate and
18370         free here def_list, copied_list and vec vectors, instead just
18371         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
18372         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
18373         Add state variable, clear vectors in it, initialize state.modified
18374         if needed.  Free all the vectors at the end and state.modified too.
18375         Don't skip a candidate if the extension expression has been modified.
18377 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
18379         PR target/47096
18380         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
18381          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
18382         (extra_options) interix.opt -> i386/interix.opt"
18383         (extra_objs):Add winnt-stubs.o
18384         * configure.ac: Add interix to target_os .comm on PE check.
18385         * configure: Regenerate.
18386         * config/interix3.h: Delete and move bits to..
18387         * config/interix.h: Delete and move bits to..
18388         * config/i386/i386-interix3.h: Delete and move bits to..
18389         * config/i386/i386-interix.h: ..here.
18390         (TARGET_CPU_DEFAULT): Remove redefinition.
18391         (TARGET_ASM_CONSTRUCTOR): Undefine.
18392         (SUBTARGET_SWITCHES): Define for ms-bitfields.
18393         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
18394         (PTRDIFF_TYPE): Define.
18395         (LONG_DOUBLE_TYPE_SIZE): Define.
18396         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
18397         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
18398         (TARGET_SECTION_TYPE_FLAGS): Define.
18399         (ASM_DECLARE_FUNCTION_NAME): Define.
18400         (ASM_OUTPUT_EXTERNAL): Define.
18401         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
18402         (ASM_OUTPUT_ALIGNED_BSS): Define.
18403         (PCC_BITFIELD_TYPE_MATTERS): Define.
18404         (USE_CONST_SECTION): Define.
18405         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
18406         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
18407         (SUPPORTS_ONE_ONLY): Remove.
18408         (I386_PE_STRIP_ENCODING): Define.
18409         * config/interix.opt: Delete and move bits to..
18410         * config/i386/interix.opt: ..here. New.
18411         (mpe-aligned-commons): Add.
18412         * config/i386/t-interix: Add copyright header.
18413         (winnt-stubs.o): Add rule.
18415 2012-01-22  Jason Merrill  <jason@redhat.com>
18417         PR c++/51832
18418         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
18419         for extra name aliases.
18421 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
18423         PR rtl-optimization/51924
18424         * ree.c (combine_set_extension): Improve debugging message.
18425         (combine_reaching_defs): Likewise.
18426         (get_defs): Rename confusingly named variable.
18427         (find_and_remove_re): Skip a candidate if the extension expression has
18428         been modified.
18430 2012-01-21  Robert Millan  <rmh@gnu.org>
18431             Gerald Pfeifer  <gerald@pfeifer.com>
18433         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
18434         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
18436 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
18438         PR tree-optimization/51914
18439         * tree-vect-stmts.c (vectorizable_conversion): For
18440         cvt_type && modifier == WIDEN, put temporary with cvt_type
18441         at the beginning of vec_dsts and set vec_dest to temporary
18442         with vectype_out.
18444 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
18446         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
18448 2012-01-20  Tijl Coosemans  <tijl@coosemans.org>
18450         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
18451         * config/rs6000/rs6000.c: Likewise.
18453 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
18455         PR target/51915
18456         * config/arm/arm.c (arm_count_output_move_double_insns): Call
18457         output_move_double on a copy of operands array.
18459 2012-01-20  Cary Coutant  <ccoutant@google.com>
18460             Dodji Seketeli  <dodji@redhat.com>
18462         PR debug/45682
18463         * dwarf2out.c (copy_declaration_context): Return ref to parent
18464         of declaration DIE, if necessary.
18465         (remove_child_or_replace_with_skeleton): Add new parameter; update
18466         caller.  Place skeleton DIE under parent DIE of original declaration.
18467         Move call to copy_declaration_context to here ...
18468         (break_out_comdat_types): ... from here.
18470 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18472         PR rtl-optimization/51856
18473         * reload.c (find_reloads_subreg_address): Set the address_reloaded
18474         flag to reloaded.
18476 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18478         PR target/51819
18479         * config/arm/arm.c (arm_print_operand): Correct output of alignment
18480         hints for neon loads and stores.
18482 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
18484         PR target/49868
18485         PR target/50887
18486         * doc/extend.texi (Named Address Spaces): Split into subsections.
18487         (AVR Named Address Spaces): New subsection.
18488         (M32C Named Address Spaces): New subsection.
18489         (RL78 Named Address Spaces): New subsection.
18490         (SPU Named Address Spaces): New subsection.
18491         (Variable Attributes): New anchor "AVR Variable Attributes".
18492         (AVR Variable Attributes): Rewrite and avoid wording
18493         "address space" in this context.
18494         * doc/invoke.texi (AVR Options): Rewrite and add documentation
18495         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
18496         (AVR Built-in Macros): New subsubsection therein.
18497         * doc/md.texi (AVR constraints): Remove "C04", "R".
18499 2012-01-20  Richard Guenther  <rguenther@suse.de>
18501         PR tree-optimization/51903
18502         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
18503         when removing stmts.
18505 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18507         PR target/50313
18508         * config/arm/arm.c (arm_load_pic_register): Use
18509         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
18510         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
18511         (arm_pic_static_addr): Likewise.
18512         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
18513         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
18514         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
18515         (pic_load_addr_unified): New.
18517 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
18519         PR target/51106
18520         * function.c (instantiate_virtual_regs_in_insn): Use
18521         delete_insn_and_edges when removing a wrong asm insn.
18523 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
18525         PR rtl-optimization/40761
18526         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
18527         Add new member loop_num.
18528         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
18529         (ira_build): Remove the parameter.
18531         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
18532         (ira.c): Do not build CFG loops for one region allocation.  Remove
18533         argument from ira_build call.
18535         * ira-build.c (init_loop_tree_node): New function.
18536         (create_loop_tree_nodes): Use it.  Separate the case when CFG
18537         loops are not built.
18538         (more_one_region_p): Check current_loops.
18539         (finish_loop_tree_nodes): Separate the case when CFG loops are not
18540         built.
18541         (add_loop_to_tree): Process loop equal to NULL too.
18542         (form_loop_tree): Separate the case when CFG loops are not built.
18543         Use explicitly number for the root.
18544         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
18545         an assertion.
18546         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
18547         instead of loop->num.
18548         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
18549         (mark_all_loops_for_removal): Ditto.
18550         (remove_unnecessary_regions): Separate the case when CFG loops
18551         are not built.
18552         (ira_build): Remove the parameter.  Use explicit number of regions
18553         when CFG loops are not built.
18555         * ira-color.c (print_loop_title): Separate the case for the root node.
18556         Use loop_num instead of loop->num.
18557         (move_spill_restore): Use loop_num instead of loop->num.
18559         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
18560         (change_loop): Ditto.
18561         (change_loop): Use loop_num instead of loop->num.
18563         * ira-lives.c (process_bb_node_lives): Ditto.
18565         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
18567         * ira-conflicts.c (print_allocno_conflicts): Ditto.
18569 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
18571         PR libmudflap/40778
18572         * tree-mudflap.c (mf_artificial): New function.
18573         (execute_mudflap_function_ops, execute_mudflap_function_decls,
18574         mx_register_decls, mudflap_enqueue_decl): Use it.
18576         PR target/51876
18577         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
18578         numbers in the insn pattern.
18580 2012-01-19  Michael Matz  <matz@suse.de>
18582         PR tree-optimization/46590
18583         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
18584         use it in remembering which conflicts we already created.
18585         (add_scope_conflicts): Adjust call to above, (de)allocate helper
18586         bitmap.
18588 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
18590         PR lto/51280
18591         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
18592         (merge_and_complain): Same.
18594 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
18596         PR bootstrap/50237
18597         * config/initfini-array.h: Guard content of the header
18598         with #ifdef HAVE_INITFINI_ARRAY.
18599         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
18600         Add initfini-array.h to tm_file here.
18601         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
18602         * config.gcc: Don't add initfini-array.h to tm_file here.
18603         * configure: Regenerated.
18605 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
18607         PR rtl-optimization/51505
18608         * df-problems.c (df_kill_notes): New parameter live. Update comment.
18609         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
18610         (df_note_bb_compute): Update the call to df_kill_notes.
18612 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
18614         * trans-mem.c (requires_barrier): Remove call to is_global_var.
18616 2012-01-18  Richard Guenther  <rguenther@suse.de>
18618         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
18619         of conversions to void *.
18621 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18622             Richard Sandiford  <rdsandiford@googlemail.com>
18624         PR middle-end/50325
18625         PR middle-end/51192
18626         * optabs.h (simplify_expand_binop): Declare.
18627         * optabs.c (simplify_expand_binop): Make global.
18628         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
18629         endian targets if the source cannot be exactly covered by word
18630         mode chunks.
18632 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
18634         PR bootstrap/51872
18635         * hard-reg-set.h (struct hard_reg_set_container): New type.
18636         * target.h (struct hard_reg_set_container): Forward declare.
18637         * target.def (set_up_by_prologue): New target hook.
18638         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
18639         * doc/tm.texi: Regenerated.
18640         * function.c (thread_prologue_and_epilogue_insns): Change
18641         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
18642         Call targetm.set_up_by_prologue on it.
18643         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
18644         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
18646 2012-01-17  Nick Clifton  <nickc@redhat.com>
18648         * config/rx/rx.c (rx_can_use_simple_return): New function.
18649         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
18650         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
18652 2012-01-17  Richard Guenther  <rguenther@suse.de>
18654         PR middle-end/51782
18655         * expr.c (expand_assignment): Take address-space information
18656         from the address operand of MEM_REF and TARGET_MEM_REF.
18657         (expand_expr_real_1): Likewise.
18659 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18661         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
18662         reload dump is requested.
18664 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
18666         PR other/51165
18667         * trans-mem.c (requires_barrier): Call may_be_aliased.
18669 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
18671         PR tree-optimization/51877
18672         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
18673         call arguments and fndecls compare equal, instead return false if they
18674         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
18675         both SSA_NAMEs that are valueized the same, or they satisfy
18676         operand_equal_p.
18678 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18680         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
18681         Solaris 11+.
18682         * configure: Regenerate.
18684 2012-01-16  Jan Hubicka  <jh@suse.cz>
18686         PR c/12245
18687         PR c++/14179
18688         * convert.c (convert_to_integer): Use fold_convert for
18689         converting an INTEGER_CST to integer type.
18691 2012-01-16  Jason Merrill  <jason@redhat.com>
18693         PR c++/14179
18694         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
18696 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
18698         PR bootstrap/51860
18699         * config/s390/s390.c (s390_chunkify_start): Don't skip
18700         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
18701         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
18702         If insn is followed by NOTE_INSN_VAR_LOCATION or
18703         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
18704         Don't use location of note insns.
18706         PR tree-optimization/51865
18707         * tree-inline.c (tree_function_versioning): Call remap_decl
18708         on DECL_RESULT whenever it has VOID_TYPE_P type.
18710 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
18712         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
18713         for calls to locally-binding MIPS16 functions if only the return
18714         type uses float regs.
18716 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
18717             Richard Sandiford  <rdsandiford@googlemail.com>
18719         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
18720         (SYMBOL_32_HIGH): Likewise.
18721         (mips_output_tls_reloc_directive): Declare.
18722         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
18723         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
18724         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
18725         (mips_lo_relocs, mips_hi_relocs): Make extern.
18726         (mips16_stub_function): Move up file.
18727         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
18728         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
18729         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
18730         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
18731         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
18732         (mips_get_tp): Add MIPS16 support.
18733         (mips_legitimize_tls_address): Remove MIPS16 sorry().
18734         Generalize DTPREL and TPREL handling.
18735         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
18736         Add MIPS16 TLS support.
18737         (mips_output_tls_reloc_directive): New function.
18738         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
18739         * config/mips/predicates.md (symbolic_operand_with_high)
18740         (tls_reloc_operand): New predicates.
18741         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
18742         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
18743         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
18744         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
18745         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
18746         (*tls_get_tp_mips16_call_<mode>): Likewise.
18748 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
18750         PR rtl-optimization/51821
18751         * recog.c (peep2_find_free_register): Determine clobbered registers
18752         from insn pattern.
18754 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
18756         PR target/50925
18757         * config/avr/avr-protos.h: Revert change of 2012-01-09.
18758         * config/avr/avr.c: Likewise.
18759         * config/avr/avr.h: Likewise.
18761 2012-01-13  Ian Lance Taylor  <iant@google.com>
18763         PR c++/50012
18764         * tree.h (TYPE_QUALS): Add cast to int.
18765         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
18767 2012-01-13  Ian Lance Taylor  <iant@google.com>
18769         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
18770         comparing param_index to VEC_length result.
18772 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
18774         * c-decl.c: Do not include tree-mudflap.h
18775         * tree-optimize.c: Likewise.
18776         * Makefile.in: Update dependencies.
18778 2012-01-13  Richard Guenther  <rguenther@suse.de>
18780         PR middle-end/8081
18781         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
18782         variable-sized result always use RSO.
18784 2012-01-12  DJ Delorie  <dj@redhat.com>
18786         * cfgexpand.c (convert_debug_memory_address): Allow any valid
18787         pointer type, not just the default pointer type.
18789 2012-01-09  Richard Henderson  <rth@redhat.com>
18790             Denis Chertykov  <chertykov@gmail.com>
18792         PR target/50925
18793         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
18794         * config/avr/avr.c (avr_can_eliminate): Simplify.
18795         (avr_initial_elimination_offset): Likewise.
18796         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
18797         (expand_epilogue): Likewise.
18798         (avr_legitimize_address): Gut.
18799         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
18800         (avr_hard_regno_nregs): New.
18801         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
18802         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
18803         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
18804         add soft frame pointer.
18805         (CALL_USED_REGISTERS): Likewise.
18806         (REG_CLASS_CONTENTS): Likewise.
18807         (REGISTER_NAMES): Likewise.
18808         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
18809         (HARD_FRAME_POINTER_REGNUM): New.
18810         (FRAME_POINTER_REGNUM): Use soft frame pointer.
18811         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
18812         remove the HARD_FRAME_POINTER self-elimination.
18814 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
18816         PR target/51756
18817         * config/avr/avr.c (avr_encode_section_info): Test for absence of
18818         DECL_EXTERNAL when checking for initializers of progmem variables.
18820 2012-01-12  Ira Rosen  <irar@il.ibm.com>
18822         PR tree-optimization/51799
18823         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
18824         that the last operation is a type demotion.
18826 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
18828         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
18829         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
18831 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
18833         PR bootstrap/51796
18834         * combine.c (distribute_notes): If i3 is a noreturn call,
18835         allow old_size to be equal to args_size and make sure the
18836         noreturn call gets REG_ARGS_SIZE note.
18837         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
18838         on noreturn calls even when the delta is 0.
18840 2012-01-11  Nathan Sidwell  <nathan@acm.org>
18842         * gcov.c (STRING_SIZE): Remove.
18843         (generate_results): Erase annotations for source files with no
18844         coverage information.
18845         (read_line): New.
18846         (output_lines): Use it.
18848 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
18850         * gimple.h (gimplify_body): Remove first argument.
18851         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
18852         pointer set here, instead just pass DATA to walk_tree.
18853         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
18854         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
18855         (unvisit_body): Likewise, but with unmark_visited.
18856         (gimplify_body): Remove BODY_P argument and adjust.
18857         (gimplify_function_tree): Adjust call to gimplify_body.
18858         * omp-low.c (finalize_task_copyfn): Likewise.
18860 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
18862         * tree.h (build_function_decl_skip_args): Add boolean parameter.
18863         (build_function_type_skip_args): Delete.
18864         * tree.c (build_function_type_skip_args): Make static and add
18865         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
18866         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
18867         pass it to build_function_type_skip_args.
18868         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
18869         (tree_function_versioning): Likewise.
18870         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
18871         build_function_decl_skip_args.
18872         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
18873         and pass it to build_function_decl_skip_args/tree_function_versioning.
18874         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
18875         * ipa-inline-transform.c (save_inline_function_body): Likewise.
18876         * trans-mem.c (ipa_tm_create_version): Likewise.
18877         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
18878         * tree-inline.c (declare_return_variable): Remove always-true test.
18879         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
18880         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
18881         * ipa-split.c (split_function): Skip the return value for the split
18882         part if it doesn't return.
18884 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18886         PR tree-optimization/49642
18887         * ipa-split.c (forbidden_dominators): New variable.
18888         (check_forbidden_calls): New function.
18889         (dominated_by_forbidden): Likewise.
18890         (consider_split): Check for forbidden dominators.
18891         (execute_split_functions): Initialize and free forbidden
18892         dominators info; call check_forbidden_calls.
18894 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
18896         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
18898 2012-01-11  Nick Clifton  <nickc@redhat.com>
18900         * config/rx/rx.md (return): Define pattern.
18902 2012-01-11  Richard Guenther  <rguenther@suse.de>
18904         * doc/extend.texi (malloc attribute): Adjust according to
18905         implementation.
18907 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
18908             Patrick Marlier  <patrick.marlier@gmail.com>
18910         PR middle-end/51516
18911         * trans-mem.c (get_cg_data): Traverse aliases if requested.
18912         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
18913         (ipa_tm_note_irrevocable): Same.
18914         (ipa_tm_scan_irr_block): Same.
18915         (ipa_tm_decrement_clone_counts): Same.
18916         (ipa_tm_scan_irr_function): Same.
18917         (ipa_tm_create_version_alias): Same.
18918         (ipa_tm_create_version): Same.
18919         (ipa_tm_transform_calls_redirect): Same.
18920         (ipa_tm_transform_calls): Same.
18921         (ipa_tm_transform_transaction): Same.
18922         (ipa_tm_execute): Same.
18924 2012-01-10  Richard Guenther  <rguenther@suse.de>
18926         PR middle-end/51806
18927         * opts.c (common_handle_option): Handle -Werror.
18929 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
18931         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
18932         operand number.
18934 2012-01-10  Jason Merrill  <jason@redhat.com>
18936         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
18937         information.
18939 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18941         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
18942         supports R_386_TLS_GD_PLT reloc.
18943         (gcc_cv_as_ix86_tlsldmplt): Check if linker
18944         supports R_386_TLS_LDM_PLT reloc.
18945         * configure: Regenerate.
18946         * config.in: Regenerate.
18948 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
18950         PR target/49868
18951         Extend __pgmx semantics to linearize memory.
18952         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
18953         determine if code comes inline or from libgcc.
18954         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
18955         (movmem_qi, movmem_qi): Set constraint #2 to "n".
18956         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
18957         (movmemx_qi, movmemx_hi): New insns.
18958         (xload_<mode>_libgcc): Rewrite to new insn condition.
18959         (xload_<mode>): Remove insns.
18960         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
18961         cases that don't satisfy avr_xload_libgcc_p().
18962         (avr_addr_space_convert): Allow converting in any direction.
18963         (avr_addr_space_subset_p): Return always true.
18964         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
18965         (avr_emit_movmemhi): Ditto.
18966         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
18967         (avr_out_movmem): Ditto.
18968         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
18969         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
18970         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
18971         (avr_encode_section_info): Encode 'progmem' in symbol flags.
18972         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
18974 2012-01-10  Richard Guenther  <rguenther@suse.de>
18976         PR tree-optimization/50913
18977         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
18978         Require data-refs to be representable by Graphite with respect
18979         to any loop nest.
18981 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
18983         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
18984         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
18986 2012-01-10  Tom de Vries  <tom@codesourcery.com>
18988         PR rtl-optimization/51271
18989         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
18990         handling annulled branch.
18992 2012-01-10  Richard Henderson  <rth@redhat.com>
18994         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
18995         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
18996         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
18997         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
18998         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
18999         arm_expand_vec_perm_const): New.
19000         * config/arm/arm-protos.h: Update.
19001         * config/arm/neon.md (UNSPEC_VCONCAT): New.
19002         (*neon_vswp<VDQX>): New.
19003         (neon_vcombine<VDX>): Use neon_split_vcombine.
19004         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
19005         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
19006         (vec_perm<VE>): New.
19008 2012-01-10  Richard Henderson  <rth@redhat.com>
19010         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
19011         use it if reload_completed.
19012         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
19013         arm_output_asm_insn, arm_process_output_memory_barrier,
19014         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
19015         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
19016         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
19017         arm_process_output_sync_insn, arm_output_sync_insn,
19018         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
19019         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
19020         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
19021         (emit_unlikely_jump): New.
19022         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
19023         (arm_split_atomic_op): New.
19024         * config/arm/arm-protos.h: Update.
19025         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
19026         (struct arm_sync_generator): Remove.
19027         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
19028         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
19029         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
19030         (VUNSPEC_LL, VUNSPEC_SC): New.
19031         (sync_result, sync_memory, sync_required_value, sync_new_value,
19032         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
19033         (attr length): Don't use arm_sync_loop_insns.
19034         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
19035         (movsfcc, movdfcc): Likewise.
19036         * config/arm/constraints.md (Ua): New.
19037         * config/arm/prediates.md (mem_noofs_operand): New.
19038         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
19039         (sync_clobber, sync_t2_reqd): Remove.
19040         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
19041         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
19042         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
19043         (arm_sync_compare_and_swap<SIDI>): Remove.
19044         (arm_sync_compare_and_swap<NARROW>): Remove.
19045         (arm_sync_lock_test_and_set<SIDI>): Remove.
19046         (arm_sync_lock_test_and_set<NARROW>): Remove.
19047         (arm_sync_new_<syncop><SIDI>): Remove.
19048         (arm_sync_new_<syncop><NARROW>): Remove.
19049         (arm_sync_new_nand<SIDI>): Remove.
19050         (arm_sync_new_nand<NARROW>): Remove.
19051         (arm_sync_old_<syncop><SIDI>): Remove.
19052         (arm_sync_old_<syncop><NARROW>): Remove.
19053         (arm_sync_old_nand<SIDI>): Remove.
19054         (arm_sync_old_nand<NARROW>): Remove.
19055         (*memory_barrier): Merge arm_output_memory_barrier.
19056         (atomic_compare_and_swap<QHSD>): New.
19057         (atomic_compare_and_swap<NARROW>_1): New.
19058         (atomic_compare_and_swap<SIDI>_1): New.
19059         (atomic_exchange<QHSD>): New.
19060         (cas_cmp_operand, cas_cmp_str): New.
19061         (atomic_op_operand, atomic_op_str): New.
19062         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
19063         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
19064         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
19065         (arm_load_exclusive<NARROW>): New.
19066         (arm_load_exclusivesi, arm_load_exclusivedi): New.
19067         (arm_store_exclusive<QHSD>): New.
19069 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
19071         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
19072         reload patterns if -mvsx-scalar-memory.
19074         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
19075         generated, even -mno-vsx-scalar-double was used.
19076         (vsx_xscvdpsp_scalar): Likewise.
19077         (vsx_xscvspdp_scalar2): Likewise.
19079 2012-01-09  Tom de Vries  <tom@codesourcery.com>
19080             Andrew Pinski  <apinski@cavium.com>
19082         PR debug/51471
19083         * reorg.c (fill_slots_from_thread): Don't speculate
19084         frame-related insns.
19086 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
19088         * sched-int.h (bb_note): Move to...
19089         * basic-block.h: ...here.
19090         * haifa-sched.c (bb_note): Move to...
19091         * cfgrtl.c: ...here.
19092         * function.c (next_block_for_reg): New function.
19093         (move_insn_for_shrink_wrap): Likewise.
19094         (prepare_shrink_wrap): Rewrite to use the above.
19096 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
19098         * gimple.c (is_gimple_non_addressable): Remove.
19099         * gimple.h: Remove is_gimple_non_addressable.
19100         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
19101         is_gimple_non_addressable.
19102         * trans-mem.c (expand_assign_tm): Same.
19104 2012-01-09  Richard Guenther  <rguenther@suse.de>
19106         PR tree-optimization/51775
19107         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
19108         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
19110 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
19112         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
19113         tuning parameters.
19114         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
19116 2012-01-09  Richard Guenther  <rguenther@suse.de>
19118         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
19120 2012-01-08  Jan Hubicka  <jh@suse.cz>
19122         PR tree-optimize/51680
19123         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
19124         on when known_vals needs to be computed; cleanup.
19126 2012-01-08  Jan Hubicka  <jh@suse.cz>
19128         PR tree-optimize/51694
19129         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
19131 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
19133         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
19134         for -std=c++98 and -std=c++11 too.
19136 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
19138         * cfgloop.c (cancel_loop): Add free() of bbs array.
19140 2012-01-07  Jan Hubicka  <jh@suse.cz>
19142         PR tree-optimization/51600
19143         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
19144         that benefits small functions.
19146 2012-01-07  Jan Hubicka  <jh@suse.cz>
19148         * ipa-inline.c (want_inline_small_function_p): Fix formating.
19150 2012-01-07  Jan Hubicka  <jh@suse.cz>
19152         PR tree-optimization/51680
19153         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
19154         whose inlining reduce unit size.
19156 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
19158         PR bootstrap/51725
19159         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
19160         Add canonical node to containing_mem chain after the non-canonical
19161         one, even if there weren't any locs to propagate.
19162         (remove_useless_values): Keep only canonical values.
19163         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
19164         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
19165         canonicalize mem_chain elements that are not discarded.
19167 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
19169         PR target/47333
19170         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
19171         before emitting functions.
19173         PR gcov-profile/50127
19174         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
19175         clear_aux_for_blocks.
19177 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
19179         PR debug/51746
19180         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
19182 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
19184         * c-decl.c (ext_block): Moved up.
19185         (collect_all_refs, for_each_global_decl): Take ext_block into account.
19187 2012-01-06  Han Shen  <shenhan@google.com>
19189         Translate built-in include paths for sysroot.
19190         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
19191         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
19193         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
19194         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
19196         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
19197         control whether sysroot should be prepended to gxx include dir.
19199         * configure: Regenerate.
19201 2012-01-06  Torvald Riegel  <triegel@redhat.com>
19203         PR rtl-optimization/51771
19204         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
19205         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
19207 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
19209         PR tree-optimization/51315
19210         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
19211         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
19213 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
19215         PR target/51681
19216         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
19217         for shrp pattern.  Correctly handle and fixup shift variable.
19218         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
19220 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
19222         PR debug/51762
19223         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
19224         note when !ACCUMULATE_OUTGOING_ARGS.
19226 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
19228         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
19229         condition.
19230         (extract_range_from_unary_expr_1): Avoid useless computations.
19232 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
19234         PR rtl-optimization/51767
19235         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
19236         of jump_block and add an extra edge for degenerated asm gotos.
19238         PR middle-end/51768
19239         * stmt.c (check_unique_operand_names): Don't ICE during error
19240         reporting if i is from labels chain.
19242         PR middle-end/44777
19243         * profile.c (branch_prob): Split bbs that have exit edge
19244         and need a fake entry edge too.
19246 2012-01-05  Jan Hubicka  <jh@suse.cz>
19248         PR middle-end/49710
19249         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
19250         unlooping loops.
19252 2012-01-05  Richard Guenther  <rguenther@suse.de>
19254         PR lto/50490
19255         * tree-streamer-out.c (write_ts_optimization): New function.
19256         (streamer_write_tree_body): Call it.
19257         * tree-streamer-in.c (lto_input_ts_optimization): New function.
19258         (streamer_read_tree_body): Call it.
19259         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
19261 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
19263         PR middle-end/51761
19264         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
19265         * gimplify.c (gimplify_cleanup_point_expr): Save and set
19266         in_cleanup_point_expr before gimplify_stmt call and restore it
19267         afterwards.
19268         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
19269         in_cleanup_point_expr is false.
19271 2012-01-05  Richard Guenther  <rguenther@suse.de>
19273         PR middle-end/51764
19274         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
19275         to c.opt.
19276         * toplev.c (process_options): Reject combining mudflap and LTO.
19277         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
19279 2012-01-05  Richard Guenther  <rguenther@suse.de>
19281         PR tree-optimization/51760
19282         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
19283         not VARYING.
19284         (bit_value_unop): Handle UNDEFINED operands.
19285         (bit_value_binop): Likewise.
19287 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
19289         * config/avr/avr.c (avr_replace_prefix): Remove.
19290         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
19291         (avr_asm_function_rodata_section): Ditto.
19292         (avr_asm_select_section): Ditto.
19294 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19296         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
19297         insertion.
19299 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
19301         PR bootstrap/51648
19302         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
19303         calls that have any non-fake successor edges.
19305         PR debug/51746
19306         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
19308 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
19310         PR tree-optimization/51624
19311         * tree-sra.c (build_ref_for_model): When replicating a chain of
19312         COMPONENT_REFs, stop as soon as the offset would become negative.
19314 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
19316         PR debug/51695
19317         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
19318         in .debug_loc on the floor.
19320 2012-01-04  Andrew Pinski  <apinski@cavium.com>
19322         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
19324 2012-01-04  Andrew Pinski  <apinski@cavium.com>
19325             Adam Nemet  <anemet@caviumnetworks.com>
19327         * config/mips/mips.md (size): Add SI and DI.
19328         (SIZE): New mode attribute.
19329         (U): New code attribute.
19330         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
19331         (mips_lbux_<mode>): Delete.
19332         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
19333         (mips_lhx): Use gen_mips_lhx_extsi.
19334         (mips_lhx_<mode>): Delete.
19335         (mips_lwx): Delete.
19336         (mips_l<size>x): New expand.
19337         (mips_lwx_<mode>): Delete.
19338         (mips_l<GPR:size>x_<P:mode>): New pattern.
19339         (*mips_lw<u>x_<P:mode>_ext): Likewise.
19340         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
19341         * config/mips/mips.c (mips_lx_address_p): New function.
19342         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
19343         (dsp64): New availability predicate.
19344         (mips_builtins): Add an entry for __builtin_mips_ldx.
19345         * config/mips/mips.h (ISA_HAS_LBX): New define.
19346         (ISA_HAS_LBUX): Likewise.
19347         (ISA_HAS_LHX): Likewise.
19348         (ISA_HAS_LHUX): Likewise.
19349         (ISA_HAS_LWX): Likewise.
19350         (ISA_HAS_LWUX): Likewise.
19351         (ISA_HAS_LDX): Likewise.
19352         * doc/extend.texi (__builtin_mips_ldx): Document.
19354 2012-01-04  Tristan Gingold  <gingold@adacore.com>
19356         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
19357         when long pointers are used.
19358         * config.build (*-*-*vms*): Handle all OpenVMS targets.
19359         (alpha64-dec-*vms*, alpha*-dec-*vms*)
19360         (ia64-hp-*vms*): Remove.
19361         * config/vms/xm-vms64.h: Delete.
19363 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
19365         PR middle-end/51472
19366         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
19368 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
19370         * opts.c (finish_options): Remove duplicate sorry.
19372 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
19374         PR middle-end/51696
19375         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
19376         correctly.
19378 2012-01-04  Richard Guenther  <rguenther@suse.de>
19380         PR middle-end/51750
19381         * tree.c (size_low_cst): New function.
19382         * tree.h (size_low_cst): Declare.
19383         * fold-const.c (fold_comparison): Use it to extract the low
19384         part of the POINTER_PLUS_EXPR offset.
19386 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
19388         Fix clearing ZERO_REG
19389         * config/avr/avr.md (cc): Add alternative "ldi".
19390         (movqi_insn): Use it in cc attribute.
19391         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
19392         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
19393         (output_reload_insisf): Use ZERO_REG to pre-clear register.
19395 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19397         * configure: Regenerate.
19399 2012-01-04  Richard Guenther  <rguenther@suse.de>
19401         PR tree-optimization/49651
19402         * tree-ssa-structalias.c (type_can_have_subvars): New function.
19403         (var_can_have_subvars): Use it.
19404         (get_constraint_for_1): Only consider subfields if there can be any.
19406 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
19408         PR bootstrap/51725
19409         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
19410         to its new canonical_cselib_val and the cselib_val was in
19411         first_containing_mem chain, but the canonical_cselib_val was not,
19412         add the latter into the chain.
19413         (cselib_invalidate_mem): Compare canonical_cselib_val of
19414         addr_list chain elt with v.
19416         PR pch/51722
19417         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
19418         dwarf2out_undef): Allocate e.info using ggc_strdup instead
19419         of xstrdup.
19420         (output_macinfo_op): Don't ggc_strdup fd->filename.
19421         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
19422         then ggc_strdup it.  Don't free inc->info or cur->info.
19423         (output_macinfo): Don't free ref->info or file->info.
19425 2012-01-03  Ira Rosen  <irar@il.ibm.com>
19427         PR tree-optimization/51269
19428         * tree-vect-loop-manip.c (set_prologue_iterations): Make
19429         first_niters a pointer.
19430         (slpeel_tree_peel_loop_to_edge): Likewise.
19431         (vect_do_peeling_for_loop_bound): Update call to
19432         slpeel_tree_peel_loop_to_edge.
19433         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
19434         here.  Remove it from the parameters list.
19435         (vect_do_peeling_for_alignment): Update calls and compute
19436         wide_prolog_niters.
19438 2012-01-03  Richard Guenther  <rguenther@suse.de>
19440         PR tree-optimization/51070
19441         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
19442         Properly handle calls.
19444 2012-01-03  Richard Guenther  <rguenther@suse.de>
19446         PR tree-optimization/51692
19447         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
19448         the LHS of allocation stmts.
19450 2012-01-03  Olivier Hainque  <hainque@adacore.com>
19452         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
19454 2012-01-03  Olivier Hainque  <hainque@adacore.com>
19456         * collect2.c (main): In AIX specific computations for vector
19457         insertions, use CONST_CAST2 to cast from char ** to const char **.
19459 2012-01-03  Richard Guenther  <rguenther@suse.de>
19461         PR debug/51650
19462         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
19463         the context of a limbo DIE when it does not already exist.
19465 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
19467         PR tree-optimization/51719
19468         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
19469         but direct call is, clear direct call's lhs and don't add fallthrough
19470         edge from dcall_bb to join_bb and PHIs.
19472 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19474         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
19475         the instructions emitted by the pattern.
19476         ("*TDC_insn_<mode>"): Add comment.
19478 2012-01-03  Richard Guenther  <rguenther@suse.de>
19480         PR middle-end/51730
19481         * fold-const.c (fold_comparison): Properly canonicalize
19482         tree offset and HOST_WIDE_INT bit position.
19484 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
19486         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
19487         operands for extzv pattern.
19489 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
19491         PR bootstrap/51725
19492         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
19493         on mem_elt first.
19495 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
19497         * doc/invoke.texi (-flto and related options): Copy-edit.
19499 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
19501         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
19503 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
19505         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
19506         New patterns.
19508 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
19510         * expr.h (move_by_pieces_ninsns): Declare.
19511         * expr.c (move_by_pieces_ninsns): Make external.
19512         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
19513         (mips_store_by_pieces_p): Likewise.
19514         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
19515         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
19516         * config/mips/mips.c (mips_move_by_pieces_p): New function.
19517         (mips_store_by_pieces_p): Likewise.
19519 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
19521         * passes.c (register_one_dump_file): Free full_name.
19523         * reload1.c (reload): Don't allocate reg_max_ref_width here.
19524         (calculate_elim_costs_all_insns): Free offsets_at and
19525         offsets_known_at at the end and clear the pointers.
19527 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
19529         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
19530         this option introduced in r180739.
19532 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
19534         PR target/51345
19535         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
19536         (tmake_file target=avr): Add avr/t-multilib.
19538         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
19539         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
19540         * config/avr/genmultilib.awk: New file.
19541         * config/avr/t-multilib: New auto-generated file.
19542         * config/avr/multilib.h: New auto-generated file.
19543         * config/avr/t-avr (AVR_MCUS): New variable.
19544         (genopt.sh): Use it.
19545         (s-mlib): Depend on t-multilib.
19546         (t-multilib, multilib.h): New dependencies.
19547         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
19548         (MULTILIB_OPTIONS): Remove.
19549         (MULTILIB_MATCHES): Remove.
19550         (MULTILIB_DIRNAMES): Remove.
19551         (MULTILIB_EXCEPTIONS): Remove:
19552         * config/avr/genopt.sh: Don't use hard coded file name;
19553         pass AVR_MCUS from t-avr instead.
19555 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
19557         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
19559 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
19561         Implement light-weight DImode support.
19562         * config/avr/avr-dimode.md: New file.
19563         * config/avr/avr.md: Include it.
19564         (adjust_len): Add plus64, compare64.
19565         (HIDI): Remove code iterator.
19566         (code_stdname): New code attribute.
19567         (rotx, rotsmode): Remove DI.
19568         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
19569         as code iterator.
19570         * config/avr/avr-protos.h (avr_have_dimode): New.
19571         (avr_out_plus64, avr_out_compare64): New.
19572         * config/avr/avr.c (avr_out_compare): Handle DImode.
19573         (avr_have_dimode): New variable definition and initialization.
19574         (avr_out_compare64, avr_out_plus64): New functions.
19575         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
19576         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
19577         (avr_compare_pattern): Skip DImode comparisons.
19579 2012-01-02  Revital Eres  <revital.eres@linaro.org>
19581         * ddg.c (def_has_ccmode_p): New function.
19582         (add_cross_iteration_register_deps,
19583         create_ddg_dep_from_intra_loop_link): Call it.
19585 2012-01-02  Richard Guenther  <rguenther@suse.de>
19587         PR other/51679
19588         * invoke.texi (fassociative-math): Remove spurious paranthesis.
19590 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
19592         * gcc.c (process_command): Update copyright notice dates.
19593         * gcov.c (print_version): Likewise.
19594         * gcov-dump.c (print_version): Likewise.
19595         * mips-tfile.c (main): Likewise.
19596         * mips-tdump.c (main): Likewise.
19598 2012-01-01  Ira Rosen  <irar@il.ibm.com>
19600         PR tree-optimization/51704
19601         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
19602         a use is inside the basic block or loop before accessing its vect info.
19604 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
19606         PR rtl-optimization/51069
19607         * cfgloopmanip.c (remove_path): Removing path making irreducible
19608         region unconditional makes BB part of the region.
19610 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
19612         PR tree-optimization/51683
19613         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
19614         calls with side-effects.
19615         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
19617 Copyright (C) 2012 Free Software Foundation, Inc.
19619 Copying and distribution of this file, with or without modification,
19620 are permitted in any medium without royalty provided the copyright
19621 notice and this notice are preserved.