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
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,
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
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>
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>
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
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>
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
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):
247 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm):
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
264 * ipa-split.c (consider_split): Adjust, avoid repeated default-def
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
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
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.
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
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>
448 * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
450 2012-08-01 Alexandre Oliva <aoliva@redhat.com>
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>
460 * valtrack.h, valtrack.c: New.
461 * Makefile.in (VALTRACK_H): New.
462 (OBJS): Add valtrack.o.
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.
471 * cselib.c: Include valtrack.h.
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
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
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
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
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
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
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
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
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
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
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
653 * sese.c (graphite_copy_stmts_from_block): Do not rename virtual
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):
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
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
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>
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>
822 * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
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>
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
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
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.
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
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>
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
942 * config/i386/i386-c.c: Define __RDSEED__ if needed.
943 * config/i386/i386.c (ix86_target_string): Define -mrdseed option.
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>
967 * config/gcc/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New
970 2012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
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>
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
992 * vec.h: Describe the atomic object "A" type of the macros in
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
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
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>
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):
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>
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
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
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
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
1143 (TARGET_POWER): Delete.
1144 * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
1145 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1147 (TARGET_POWER): Delete.
1148 * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
1149 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
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):
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
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):
1179 (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
1180 (anonymous doz insn patterns): Delete.
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):
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.
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
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
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):
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
1259 (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
1260 (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
1261 * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
1263 (include "rios1.md", include "rios2.md"): Delete.
1264 (include "601.md"): New.
1265 * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
1267 * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
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):
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>
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
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
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
1383 2012-07-26 Oleg Endo <olegendo@gcc.gnu.org>
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>
1396 * config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
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
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
1436 <BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
1437 * tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
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]:
1448 [MINUS_EXPR]: Merge with PLUS_EXPR.
1450 2012-07-25 Sandra Loosemore <sandra@codesourcery.com>
1451 Paul Brook <paul@codesourcery.com>
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
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>
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
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.
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>
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
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
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
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
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
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
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
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
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
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
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>
1879 * config/arm/arm.c (arm_print_operand_address): Remove superfluous
1881 * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
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>
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
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
1988 (type_hash_canon): Likewise.
1989 (dump_tree_statistics): Likewise.
1990 * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
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>
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.
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
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>
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>
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>
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
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.
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>
2200 * config/i386/i386.md (*lea): New insn pattern.
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
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.
2253 2012-07-21 Andrew Pinski <apinski@cavium.com>
2255 * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
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):
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
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
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
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
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>
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>
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
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
2413 2012-07-19 Steve Ellcey <sellcey@mips.com>
2415 * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
2418 2012-07-19 Jason Merrill <jason@redhat.com>
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>
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
2458 2012-07-19 Christian Bruel <christian.bruel@st.com>
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):
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
2513 * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
2514 * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
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
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
2572 2012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
2575 * config/sh/sh.opt (mieee): Use Var instead of Mask. Correct
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.
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):
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
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
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>
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>
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>
2792 * gimple.c (gimple_types_compatible_p_1): Restore type attribute
2795 2012-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2797 * opts.c (default_option): Add -fvect-cost-model to default options
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
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.
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
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:
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>
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
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):
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
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
3110 * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
3111 * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
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
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>
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
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
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
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
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>
3339 * builtins.c (get_pointer_alignment_1): Handle constant
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,
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
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>
3410 * config/arm/arm.c (arm_early_load_addr_dep): Handle new
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>
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>
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
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
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):
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>
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>
3637 * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
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>
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>
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 ¬hing.
3684 (idata_end): Initialize to ¬hing.next.
3685 (init_insn_for_nothing): New function to create dummy 'nothing' insn.
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>
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
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
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.
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
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>
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>
3953 * var-tracking.c (vt_add_function_parameter): Convert
3954 internal_arg_pointer into arg_pointer-based address even
3957 2012-07-06 Alexandre Oilva <aoliva@redhat.com>
3959 PR rtl-optimization/53827
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
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>
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>
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>
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.
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
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.
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>
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>
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
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
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>
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>
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>
4193 * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
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.
4209 2012-07-02 Oleg Endo <olegendo@gcc.gnu.org>
4212 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
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
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
4224 (*movtt): Use t_reg_operand and fold little and big endian variants.
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
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>
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
4297 * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
4298 * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
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
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
4337 (type_for_clast_term): Do not assume a clast_expr_term points always to
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>
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
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>
4396 * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
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
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
4482 2012-06-28 Georg-Johann Lay <avr@gjlay.de>
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>
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>
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>
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>
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
4577 2012-06-27 Richard Guenther <rguenther@suse.de>
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
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
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
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
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
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>
4692 2012-06-21 Richard Guenther <rguenther@suse.de>
4694 * tree-inline.c (estimate_num_insns): Estimate call cost for
4697 2012-06-26 Steven Bosscher <steven@gcc.gnu.org>
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>
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>
4724 * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
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
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>
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>
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):
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):
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):
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>
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>
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
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
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>
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>
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>
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>
5180 * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
5183 2012-06-21 Alexandre Oliva <aoliva@redhat.com>
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>
5196 * cselib.c (promote_debug_loc): Don't crash on NULL argument.
5198 2012-06-21 Meador Inge <meadori@codesourcery.com>
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>
5237 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
5240 2012-06-21 Richard Guenther <rguenther@suse.de>
5242 * tree-inline.c (estimate_num_insns): Estimate call cost for
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
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
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
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
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):
5396 * doc/tm.texi: Regenerate.
5397 * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
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):
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}.
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.
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
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>
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
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
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
5669 (initialize_iterators): Initialize data structures and callbacks for
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>
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.
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.
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>
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>
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>
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
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
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>
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
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
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>
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>
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
6044 (vect_estimate_min_profitable_iters): Correct typo in call to
6045 vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
6047 (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
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>
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>
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>
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>
6127 * dce.c (word_dce_process_block): Insert debug temps only if the
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):
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
6160 (add_mapping): Remove index field. Set current_value field.
6161 (initialize_iterators): Don't set num_builtins and uses_iterator_p
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>
6175 * config/sh/sh.md (bswapsi2): New expander.
6176 (swapbsi2): New insn.
6178 2012-06-13 H.J. Lu <hongjiu.lu@intel.com>
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
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.
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.
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
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>
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
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
6435 2012-06-11 Oleg Endo <olegendo@gcc.gnu.org>
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
6446 * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
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>
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
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>
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
6498 2012-06-08 Richard Henderson <rth@redhat.com>
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>
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
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
6555 2012-06-06 Matt Turner <mattst88@gmail.com>
6557 * config/arm/mmintrin.h (_mm_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>
6576 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
6577 doing an unsigned compare, make sure the second argument is not a
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
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
6598 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
6599 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
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>
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
6657 2012-06-04 H.J. Lu <hongjiu.lu@intel.com>
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>
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>
6682 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
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>
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>
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
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>
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>
6785 * config/avr/avr-stdint.h: New file.
6786 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
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
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
6856 (propagate_accross_jump_function): Likewise.
6857 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
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>
6872 * config/sh/sh.opt (mfsca, mfsrra): New options.
6873 * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
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
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
6901 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
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):
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>
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):
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>
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.
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.
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.
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.
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.
7105 * mode-switching.c: Likewise.
7106 * postreload-gcse.c: Likewise.
7107 * postreload.c: Likewise.
7108 * predict.c: Likewise.
7109 * profile.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.
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>
7184 * config/avr/avr.opt (-msp8): Document it.
7185 * doc/invoke.texi (AVR Options): Ditto. And document related
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=
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>
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>
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
7384 2012-05-30 Richard Guenther <rguenther@suse.de>
7387 * tree-emutls.c (gen_emutls_addr): Do not add globals to
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>
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
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>
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>
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
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
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
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
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
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
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
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
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
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.
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.
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.
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.
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.
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
7757 (add_referenced_var_1): Re-organize. Assert we are not
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>
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):
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>
7794 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
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>
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
7836 2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
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>
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>
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>
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
7869 2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
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.
7923 2012-05-24 Richard Guenther <rguenther@suse.de>
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
7934 (add_referenced_var_1): ... here.
7935 * varpool.c (add_new_static_var): Do not call add_referenced_var
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
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
7959 2012-05-24 Jim MacArthur <jim.macarthur@arm.com>
7961 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
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>
7974 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
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
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
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
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>
8028 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
8029 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
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>
8044 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
8045 from other partitions.
8047 2012-05-22 Jan Hubicka <jh@suse.cz>
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
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>
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>
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
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"
8174 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
8175 Do not print '.' here. Output operand lossage error for unhandled
8180 <case 'z'>: Hardcode "code" argument into error strings.
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
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>
8212 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
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>
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
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>
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>
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
8284 2012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
8286 * Makefile.in (options.c): Add options.h to included header
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
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
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
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
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
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
8440 2012-05-18 Andrew Stubbs <ams@codesourcery.com>
8442 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
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.
8462 (regstat_compute_ri): Allocate and free local_live_last_luid.
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
8475 (mark_functions_to_output): Also accept bodies for functions with
8477 (output_in_order): Skip external vars.
8478 * lto-cgraph.c (lto_output_node): External functions are never in other
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
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
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
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
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
8590 (declspecs_add_type): Likewise, take a location parameter for the
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
8596 (declspecs_add_alignas): Likewise, take a location parameter for
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
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
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
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
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
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>
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
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
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
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>
8722 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
8723 generate target register for "load" class builtins.
8726 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
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>
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>
8752 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
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>
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
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
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
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>
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
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
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.
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.
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>
8934 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
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):
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>
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
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
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>
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>
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>
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>
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>
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
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>
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>
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
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>
9296 * dwarf2out.h (get_address_mode): Move declaration to...
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>
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
9341 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
9343 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
9345 (compile_file): Do not output variables.
9346 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
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
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>
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>
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
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>
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>
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>
9580 * config/sh/sh.c (sh_rtx_costs): Handle SET.
9582 2012-05-06 Uros Bizjak <ubizjak@gmail.com>
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.
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
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>
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.
9876 (write_header, open_outfile, handle_arg): New funcions.
9877 (make_automaton_attrs): Write prototypes as extern to the output
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>
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
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>
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
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>
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>
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
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>
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>
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
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
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
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
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):
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
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
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
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>
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.
10197 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
10201 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
10202 mode, return that mode.
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):
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>
10226 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
10229 2012-05-03 Michael Matz <matz@suse.de>
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>
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):
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
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.
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
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
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
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,
10417 (reserve_phi_args_for_new_edge): Change call to above,
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
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
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
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
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,
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
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
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
10575 (layout_type): For zero-sized arrays ignore overflow on the
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
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>
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
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
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
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>
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>
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):
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
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>
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
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
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
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
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>
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>
10966 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
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>
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
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>
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
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.
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):
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
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
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
11152 * genmodes.c (complete_mode): Don't clear component field of partial
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>
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>
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>
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
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):
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
11303 * double-int.c (double_int_max_value, double_int_min_value): New
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>
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
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
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
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
11411 (emit_frame_save): Delete frame_ptr param. Rename total_size to
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
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>
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>
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
11489 2012-04-24 Richard Guenther <rguenther@suse.de>
11491 * tree-if-conv.c (main_tree_if_conversion): Move bb under
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
11516 2012-04-24 Andrew Pinski <apinski@cavium.com>
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
11532 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
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>
11554 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
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
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
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
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
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>
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
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):
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
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
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
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
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):
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
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):
11723 * tree-switch-conversion.c (build_one_array): Likewise.
11725 2012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
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>
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>
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
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
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
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>
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>
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
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
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
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
11990 2012-04-19 Georg-Johann Lay <avr@gjlay.de>
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>
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):
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
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):
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):
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
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):
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):
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
12235 2012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
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>
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
12368 2012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
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):
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):
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
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):
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.
12522 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
12523 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
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
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
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.
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
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>
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
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>
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
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
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>
12748 * c-typeck.c (pointer_diff): Remove bogus assert.
12750 2012-04-13 Richard Guenther <rguenther@suse.de>
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>
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
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
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>
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>
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):
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):
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
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
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
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
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>
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.
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>
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
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>
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
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>
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
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
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
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>
13239 * config/pa/pa.opt: Remove SIO and GNU_LD.
13241 2012-04-09 Jan Hubicka <jh@suse.cz>
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>
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>
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
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
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
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
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>
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>
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
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):
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
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
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
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
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):
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
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
13514 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
13515 the cfg manipulation routines we are not creating a multiple
13518 2012-04-03 Tristan Gingold <gingold@adacore.com>
13520 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
13522 (vms_c_common_override_options): Allow parameterless variadic
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
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>
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>
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>
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>
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
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.
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
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
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
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
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>
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>
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>
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
13945 2012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
13948 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
13949 Rearrange conditional logic. Move displacement address calculations
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.
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
13978 2012-03-27 Uros Bizjak <ubizjak@gmail.com>
13981 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
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>
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
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
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
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>
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
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>
14105 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
14107 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
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
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
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>
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
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
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>
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>
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
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
14300 * config/rs6000/t-freebsd64: Likewise.
14302 2012-03-21 Georg-Johann Lay <avr@gjlay.de>
14304 PR rtl-optimization/52543
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
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)
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>
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
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):
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
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
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.
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.
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>
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
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>
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
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
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
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
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>
14707 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
14708 (ix86_expand_vec_perm_const_1): Use it.
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
14731 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
14732 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
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.
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.
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
14779 2012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14781 * config.gcc (target_type_format_char): New. Document it. Set it for
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>
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>
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
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
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.
14877 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
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
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
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
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
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]:
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):
14994 * doc/tm.texi: Regenerate.
14996 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
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
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
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
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>
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>
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
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
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>
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>
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>
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>
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
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
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):
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
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):
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
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
15374 (x86_64-*-*): Ditto.
15375 * i386-builtin-types.def (INT_FTYPE_VOID): New.
15376 * config/i386/i386-c.c (ix86_target_macros_internal): Define
15378 (ix86_target_string): Define -mrtm option.
15380 (ix86_option_override_internal): Extend "corei7-avx" with RTM 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.
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
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
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
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
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.
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
15470 2012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
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>
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.
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
15573 Allow the middle basic block to contain more than just the defining
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>
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
15606 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
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>
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>
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>
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
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>
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
15759 2012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
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>
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>
15776 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
15778 * config/avr/avr.md (xload_8): Adjust insn length.
15780 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
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>
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
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
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>
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
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>
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
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):
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>
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
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>
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>
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
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
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
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
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.
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
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
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>
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>
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
16137 (atomic_compare_and_swap<mode>_soft): Likewise.
16139 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
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
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>
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
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
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>
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>
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
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
16337 2012-02-29 Jakub Jelinek <jakub@redhat.com>
16338 Uros Bizjak <ubizjak@gmail.com>
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
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>
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>
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>
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
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
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
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>
16447 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
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>
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>
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>
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>
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>
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>
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>
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
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>
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.
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
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>
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>
16674 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
16676 2012-02-23 Uros Bizjak <ubizjak@gmail.com>
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
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>
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>
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
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
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>
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>
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
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>
16882 * stor-layout.c (place_field): Handle desired_align for
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
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>
16905 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
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.
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>
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>
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.
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
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>
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
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>
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>
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>
17237 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
17240 2012-02-13 Jakub Jelinek <jakub@redhat.com>
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
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>
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.
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>
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>
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>
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>
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>
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>
17418 * gcc.c (switch_matches) Support switches with separated form,
17421 2012-02-08 Georg-Johann Lay <avr@gjlay.de>
17423 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
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,
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
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
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>
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
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
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
17546 2012-02-07 Alan Modra <amodra@gmail.com>
17549 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
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'
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>
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>
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
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>
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>
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>
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
17777 2012-01-31 Jakub Jelinek <jakub@redhat.com>
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>
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
17806 2012-01-30 Jakub Jelinek <jakub@redhat.com>
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.
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
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>
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>
17873 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
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>
17884 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
17885 arm_general_register_operand predicate for operand 2 instead of
17888 2012-01-27 Ian Lance Taylor <iant@google.com>
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
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
17963 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
17965 2012-01-27 Jakub Jelinek <jakub@redhat.com>
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
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
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
18074 2012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
18076 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
18079 2012-01-25 Georg-Johann Lay <avr@gjlay.de>
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>
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.
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
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
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
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
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>
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>
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.
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>
18266 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
18267 output static aliases.
18269 2012-01-24 Jakub Jelinek <jakub@redhat.com>
18272 * common.opt (-pie, -shared, pie, shared): Change from Common to
18274 * gcc.c (display_help): Display help for -pie and -shared.
18276 2012-01-24 Georg-Johann Lay <avr@gjlay.de>
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>
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
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
18306 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
18308 2012-01-23 Kai Tietz <ktietz@redhat.com>
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>
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>
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>
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>
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
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
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>
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>
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
18476 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
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>
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>
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>
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
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
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
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.
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
18588 2012-01-19 Aldy Hernandez <aldyh@redhat.com>
18591 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
18592 (merge_and_complain): Same.
18594 2012-01-19 Jakub Jelinek <jakub@redhat.com>
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
18632 2012-01-17 Jakub Jelinek <jakub@redhat.com>
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>
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
18678 2012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18680 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
18682 * configure: Regenerate.
18684 2012-01-16 Jan Hubicka <jh@suse.cz>
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>
18694 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
18696 2012-01-16 Jakub Jelinek <jakub@redhat.com>
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
18754 2012-01-14 Denis Chertykov <chertykov@gmail.com>
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>
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>
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>
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>
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>
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.
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
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
18934 2012-01-10 Jason Merrill <jason@redhat.com>
18936 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
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>
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
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>
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
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>
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>
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>
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>
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>
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
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
19252 2012-01-05 Richard Guenther <rguenther@suse.de>
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
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
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,
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
19299 2012-01-05 Jakub Jelinek <jakub@redhat.com>
19302 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
19303 calls that have any non-fake successor edges.
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>
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
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>
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.
19417 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
19418 dwarf2out_undef): Allocate e.info using ggc_strdup instead
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>
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>
19492 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
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):
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>
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
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>
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.