+2012-05-04 Steven Bosscher <steven@gcc.gnu.org>
+
+ * rtl.def (ATTR_FLAG): Remove probability indicating flags.
+ * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
+ ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
+ * reorg.c (get_jump_flags): Do not set the removed flags.
+
+2012-05-04 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/53228
+ * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
+ (TARGET_CMOV): Rename from TARGET_CMOVE.
+ (TARGET_CMOVE): New define.
+ * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
+ Do not set TARGET_CMOVE here.
+
+2012-05-04 Dodji Seketeli <dodji@redhat.com>
+
+ Enable -Wunused-local-typedefs when -Wall or -Wunused is on
+ * opts.c (finish_options): Activate -Wunused-local-typedefs if
+ -Wunused is activated.
+ * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
+
+2012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * config/s390/s390.md (*movmem_short, *clrmem_short)
+ (*cmpmem_short): Move the mode check from the insn condition to
+ the match_scratch.
+
+2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
+
+ PR tree-optimization/52633
+ * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
+ vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
+ (vect_recog_over_widening_pattern): Remove handling of code that was
+ already detected as over-widening pattern. Remove special handling
+ of "unsigned" cases. Instead, support general case of conversion
+ of the shift result to another type.
+
+2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
+
+ * tree-vect-patterns.c (vect_single_imm_use): New function.
+ (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
+ (vect_recog_over_widening_pattern): Likewise.
+ (vect_recog_widen_shift_pattern): Likewise.
+
+2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
+
+ * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
+ (vect_handle_widen_op_by_const): Use it instead of open-coding test.
+ (vect_recog_widen_mult_pattern): Likewise.
+ (vect_operation_fits_smaller_type): Likewise.
+ (vect_recog_over_widening_pattern): Likewise.
+ (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
+
+2012-05-04 Richard Guenther <rguenther@suse.de>
+
+ PR lto/50602
+ * lto-wrapper.c (merge_and_complain): Complain about mismatches
+ of -freg-struct-return and -fpcc-struct-return.
+ (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
+ from the input file options and ignore those from the link
+ command line.
+
+2012-05-04 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/53168
+ * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
+ memory reads when the result is a constant we can pun.
+
+2012-05-04 Richard Guenther <rguenther@suse.de>
+
+ * common.opt (flto-report): Do not mark as Optimization.
+
+2012-05-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR target/48496
+ * recog.c (constrain_operands): If extra constraints are present, also
+ accept pseudo-registers with equivalent memory locations during reload.
+
+2012-05-04 Olivier Hainque <hainque@adacore.com>
+
+ * collect2.c (may_unlink_output_file): New global.
+ (maybe_unlink): Honor it.
+ * collect2.h: Add extern for it.
+ * tlink.c (do_tlink): Set it to true if the link succeeded.
+
+2012-05-04 Olivier Hainque <hainque@adacore.com>
+
+ * gcc.c (eval_spec_function): Finalize/restore the current string
+ obstack state as part of the context push/pop operations.
+
+2012-05-04 Bin Cheng <bin.cheng@arm.com>
+
+ PR rtl-optimization/52804
+ * reload1.c (reload_reg_reaches_end_p): Check whether successor
+ reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
+ of current one with type RELOAD_FOR_INPADDR_ADDRESS.
+ Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
+ RELOAD_FOR_OUTADDR_ADDRESS.
+
+2012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c++/24985
+ * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
+ for macro expansion.
+
+2012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * flags.h (flag_permissive): Do not declare.
+ * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
+ option specially.
+ * toplev.c (flag_permissive): Do not define.
+ * c-tree.h (system_header_p): Delete unused.
+
+2012-05-03 David S. Miller <davem@davemloft.net>
+
+ PR target/52684
+ * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
+ MEM directly into a libcall, mark it's MEM_EXPR as addressable.
+ (sparc_emit_float_lib_cmp): Likewise.
+
+2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/53199
+ * config/rs6000/rs6000.md (bswapdi splitters): If
+ -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
+ default) is used, generate an alternate sequence that does not
+ depend on using indexed addressing.
+
+2012-05-03 Jason Merrill <jason@redhat.com>
+
+ * gengtype.c (write_types): Fix warning message.
+ (write_local): Likewise.
+
+2012-05-02 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (struct external_ref, build_local_stub): New.
+ (hash_external_ref, external_ref_eq, lookup_external_ref): New.
+ (optimize_external_refs, optimize_external_refs_1): New.
+ (change_AT_die_ref): New.
+ (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
+ (build_abbrev_table): Take the external refs hashtable.
+ (output_comp_unit): Get it from optimize_external_refs and pass it in.
+
+2012-05-03 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/53093
+ * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
+
+2012-05-03 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/53106
+ * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
+
+2012-05-03 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
+ use_debug_types to discriminate the die_id union.
+ (print_die, assign_symbol_names, copy_decls_walk): Likewise.
+ (build_abbrev_table, output_die): Likewise.
+ (prune_unused_types_walk_attribs): Likewise.
+ (generate_type_signature, copy_declaration_context): Set it.
+ (remove_child_or_replace_with_skeleton): Set it.
+ (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
+ check use_debug_types.
+ (dwarf2out_finish): Do break_out_includes after .debug_types.
+
+2012-05-03 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (modified_type_die): Use scope_die_for.
+ (gen_type_die_with_usage, dwarf2out_finish): Likewise.
+ (uses_local_type_r, uses_local_type): New.
+ (scope_die_for): Keep a type that uses a local type in local scope.
+ Use get_context_die for namespace and type scope.
+
+2012-05-03 Jason Merrill <jason@redhat.com>
+
+ * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
+ pc thunk.
+ * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
+ (dwarf2out_finish): Likewise.
+
+2012-05-03 Martin Jambor <mjambor@suse.cz>
+
+ * builtins.c (get_object_alignment_1): Return whether we can determine
+ the alignment or conservatively assume byte alignment. Return the
+ alignment by reference. Use get_pointer_alignment_1 for dereference
+ alignment.
+ (get_pointer_alignment_1): Return whether we can determine the
+ alignment or conservatively assume byte alignment. Return the
+ alignment by reference. Use get_ptr_info_alignment to get SSA name
+ alignment.
+ (get_object_alignment): Update call to get_object_alignment_1.
+ (get_object_or_type_alignment): Likewise, fall back to type alignment
+ only when it returned false.
+ (get_pointer_alignment): Update call to get_pointer_alignment_1.
+ * fold-const.c (get_pointer_modulus_and_residue): Update call to
+ get_object_alignment_1.
+ * ipa-prop.c (ipa_modify_call_arguments): Update call to
+ get_pointer_alignment_1.
+ * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
+ of MEM_REF or TARGET_MEM_REF only when it returns false.
+ * tree-ssa-ccp.c (get_value_from_alignment): Update call to
+ get_object_alignment_1.
+ (ccp_finalize): Use set_ptr_info_alignment.
+ * tree.h (get_object_alignment_1): Update declaration.
+ (get_pointer_alignment_1): Likewise.
+ * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
+ (dump_gimple_stmt): Likewise.
+ * tree-flow.h (ptr_info_def): Updated comments of fields align and
+ misalign.
+ (get_ptr_info_alignment): Declared.
+ (mark_ptr_info_alignment_unknown): Likewise.
+ (set_ptr_info_alignment): Likewise.
+ (adjust_ptr_info_misalignment): Likewise.
+ * tree-ssa-address.c (copy_ref_info): Use new access functions to get
+ and set alignment of SSA names.
+ * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
+ mark_ptr_info_alignment_unknown.
+ * tree-ssanames.c (get_ptr_info_alignment): New function.
+ (mark_ptr_info_alignment_unknown): Likewise.
+ (set_ptr_info_alignment): Likewise.
+ (adjust_ptr_info_misalignment): Likewise.
+ (get_ptr_info): Call mark_ptr_info_alignment_unknown.
+ * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
+ Likewise.
+ (bump_vector_ptr): Likewise.
+ * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
+ (vectorizable_store): Likewise.
+ (vectorizable_load): Likewise.
+
+2012-05-03 Michael Matz <matz@suse.de>
+
+ * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
+ in front of basic_block_def.
+ (struct basic_block_def): Make il.gimple the full struct, not a
+ pointer.
+ (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
+
+ * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
+ * gimple-iterator.c (gimple_stmt_iterator): Don't special case
+ NULL il.gimple, which can't happen anymore.
+ * gimple.h (bb_seq): il.gimple can't be NULL.
+ (bb_seq_add): Ditto.
+ (set_bb_seq): Adjust.
+ (gsi_start_bb, gsi_last_bb): Tidy.
+ * lto-streamer-in.c (make_new_block): Don't zero members that
+ are zeroed already, don't allocate a gimple_bb_info.
+ * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
+ (remove_bb): Clear all il.gimple members.
+ (gimple_verify_flow_info): Adjust for flat il.gimple.
+ * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
+
+ * coretypes.h (const_gimple_seq): Remove typedef.
+ * gimple.h (gimple_seq_first): Take gimple_seq.
+ (gimple_seq_first_stmt): Ditto.
+ (gimple_seq_last): Ditto.
+ (gimple_seq_last_stmt): Ditto.
+ (gimple_seq_empty_p): Ditto.
+
+2012-05-03 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
+ operations.
+ (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
+ (compute_avail): Do not add possibly trapping operations to
+ EXP_GEN if they might not be executed in the block.
+
+2012-05-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
+
+2012-05-03 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
+ information as early as possible. Update dominance info instead of
+ discarding it.
+
+2012-05-03 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
+ (union_contains_value): Remove.
+ (vro_valid_in_sets): Likewise.
+ (op_valid_in_sets): New function.
+ (valid_in_sets): Use op_valid_in_sets.
+ (insert_into_preds_of_block): Move dumping ...
+ (do_regular_insertion): ... here.
+ (do_partial_partial_insertion): ... and here. Dump that
+ we've found a partial partial redundancy.
+ (insert): Dump the current insert iteration.
+
+2012-05-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR plugins/53126
+ * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
+ append program name to it and pass that as first argument
+ to make_relative_prefix. Always pass standard_libexec_prefix
+ as last argument to make_relative_prefix. If
+ make_relative_prefix returns NULL, fall back to
+ standard_libexec_prefix.
+
+ PR debug/53174
+ * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
+ removed.
+
+ PR target/53187
+ * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
+ mode, return that mode.
+
+ PR target/53194
+ * config/i386/i386-c.c (ix86_target_macros_internal): Don't
+ define __ATOMIC_HLE_* macros here.
+ (ix86_target_macros): But here, using cpp_define_formatted.
+
+2012-05-03 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/53144
+ * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
+ Rename to ...
+ (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
+ with SSA name values.
+ (vn_reference_lookup_3): Adjust callers.
+
+2012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
+
+ * config/i386/driver-i386.c (host_detect_local_cpu): Reset
+ has_fma4 for AMD processors with both fma3 and fma4 support.
+
+2012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
+
+ PR target/53201
+ * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
+ "-mno-hle".
+
+2012-05-03 Michael Matz <matz@suse.de>
+
+ PR bootstrap/53197
+ * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
+ (dse_enter_block): Properly iterate the whole sequence even
+ if the last statement was removed.
+
+2012-05-02 Steven Bosscher <steven@gcc.gnu.org>
+
+ * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
+ unset flag_jump_tables.
+ * stmt.c (expand_case): Remove special flag_pic case conditional
+ on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
+
+2012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
+
+ * common/config/s390/s390-common.c (s390_option_optimization_table):
+ Enable -fsched-pressure using -fsched-pressure-algorithm=model by
+ default when optimizing.
+
+2012-05-02 Martin Jambor <mjambor@suse.cz>
+
+ PR lto/52605
+ * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
+ of a variable when the contect is a function.
+
+2012-05-02 Michael Matz <matz@suse.de>
+
+ * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
+ * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
+ (const_gimple_seq_node): Remove.
+ (gimple_seq_node): Typedef as gimple.
+ (struct gimple_statement_base): Add next and prev members,
+ adjust all WORD markers in using structs.
+ (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
+ (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
+ gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
+ gimple are the same.
+ (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
+ gimple_seq, adjust.
+ (gimple_init_singleton): New function.
+ (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
+ (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
+ (gsi_stmt): Adjust.
+ (gsi_stmt_ptr): Remove.
+ (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
+
+ * gimple-iterator.c (update_bb_for_stmts): Take last parameter
+ again, adjust for above changes.
+ (update_call_edge_frequencies): Adjust for above changes.
+ (gsi_insert_seq_nodes_before): Rewrite for new data structure.
+ (gsi_insert_seq_nodes_after): Ditto.
+ (gsi_split_seq_after): Ditto.
+ (gsi_set_stmt): Ditto.
+ (gsi_split_seq_before): Ditto.
+ (gsi_remove): Ditto.
+ (gsi_insert_seq_before_without_update): Don't free sequence.
+ (gsi_insert_seq_after_without_update): Ditto.
+ (gsi_replace): Assert some more invariants.
+ (gsi_insert_before_without_update, gsi_insert_after_without_update):
+ Tidy.
+ (gsi_for_stmt): Don't search for stmt.
+ (gsi_insert_on_edge_immediate): Tidy.
+
+ * gimple.c (gimple_alloc_k): Remove "sequences".
+ (gimple_seq_cache): Remove.
+ (gimple_alloc_stat): Make stmt a singleton sequence.
+ (gimple_seq_alloc, gimple_seq_free): Remove.
+ (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
+ (gimple_copy): Ditto.
+ * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
+ create iterator from correct sequence.
+ * tree-phinodes.c (make_phi_node): Make stmt a singleton.
+
+2012-05-02 Michael Matz <matz@suse.de>
+
+ * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
+ gimple_seq.
+ (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
+ sequence, lazily allocate it.
+ (bb_seq_addr): New function.
+ (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
+ (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
+ (gsi_none): New function.
+ (gsi_start_bb): Adjust.
+ (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
+ (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
+ (gsi_last_bb): Adjust.
+ (gsi_seq): Adjust.
+ * tree-flow-inline.h (phi_nodes_ptr): New function.
+
+ * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
+ datastructure and interface change.
+ (gsi_insert_seq_before_without_update): Ditto.
+ (gsi_insert_seq_nodes_after): Ditto.
+ (gsi_insert_seq_after_without_update): Ditto.
+ (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
+ (gsi_split_seq_before): Ditto.
+ (gsi_start_phis): Adjust.
+ * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
+ (vect_transform_loop): Ditto.
+ * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
+ gimple_seq_copy): Don't use gimple_seq_alloc.
+ * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
+ (gimplify_seq_add_seq): Ditto.
+ * lto-streamer-in.c (make_new_block): Ditto.
+ * tree-cfg.c (create_bb): Ditto.
+ * tree-sra.c (initialize_parameter_reductions): Ditto.
+
+2012-05-02 Michael Matz <matz@suse.de>
+
+ * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
+ gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
+ gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
+ set_bb_seq): Move down to after gimple_statement_d definition.
+
+2012-05-02 Michael Matz <matz@suse.de>
+
+ * gimple-fold.c (gimplify_and_update_call_from_tree): Use
+ gsi_replace_with_seq, instead of inserting itself.
+ * gimple-iterator.c (gsi_replace_with_seq): New function.
+ * tree-ssa-forwprop.c (forward_propagate_comparison): Take
+ iterator instead of statement, advance it.
+ (ssa_forward_propagate_and_combine): Adjust call to above.
+
+2012-05-02 Michael Matz <matz@suse.de>
+
+ * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
+ gimple_seq_alloc.
+ * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
+ * tree-nested.c (walk_gimple_omp_for): Ditto.
+ * trans-mem.c (lower_transaction): Ditto.
+ * tree-eh.c (do_return_redirection): Ditto.
+ (do_goto_redirection): Ditto.
+ (lower_try_finally_switch): Ditto.
+ * gimplify.c (gimplify_stmt): Ditto.
+ (gimplify_scan_omp_clauses): Ditto.
+ (gimplify_omp_for): Ditto.
+ (gimplify_function_tree): Ditto.
+ * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
+ * tree-mudflap.c (mf_decl_cache_locals): Ditto.
+ (mf_build_check_statement_for): Ditto.
+ (mx_register_decls): Ditto.
+ * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
+ and don't use itertors to append.
+ (insert_stmts): Ditto.
+ (insert_out_of_ssa_copy): Ditto.
+ (insert_out_of_ssa_copy_on_edge): Ditto.
+
+2012-05-02 Michael Matz <matz@suse.de>
+
+ * gimple.h (gimple_bind_body_ptr): New function.
+ (gimple_bind_body): Use it.
+ (gimple_catch_handler): Use gimple_catch_handler_ptr.
+ (gimple_eh_filter_failure_ptr): New function.
+ (gimple_eh_filter_failure): Use it.
+ (gimple_eh_else_n_body_ptr): New function.
+ (gimple_eh_else_n_body): Use it.
+ (gimple_eh_else_e_body_ptr): New function.
+ (gimple_eh_else_e_body): Use it.
+ (gimple_try_eval_ptr): New function.
+ (gimple_try_eval): Use it.
+ (gimple_try_cleanup_ptr): New function.
+ (gimple_try_cleanup): Use it.
+ (gimple_wce_cleanup_ptr): New function.
+ (gimple_wce_cleanup): Use it.
+ (gimple_omp_body_ptr): New function.
+ (gimple_omp_body): Use it.
+ (gimple_omp_for_pre_body_ptr): New function.
+ (gimple_omp_for_pre_body): Use it.
+ (gimple_transaction_body_ptr): New function.
+ (gimple_transaction_body): Use it.
+ (gsi_split_seq_before): Adjust to return nothing and take pointer
+ to sequence.
+ (gsi_set_stmt): Declare.
+ (gsi_replace_with_seq): Declare.
+ (walk_gimple_seq_mod): Declare.
+ * function.h (struct function <gimple_body>): Use typedef gimple_seq.
+
+ * gimple-iterator.c (gsi_set_stmt): New function.
+ (gsi_split_seq_before): Return new sequence via pointer argument.
+ (gsi_replace): Use gsi_set_stmt.
+
+ * tree-ssa-loop-im.c (move_computations_stmt): First remove
+ then insert stmt.
+ * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
+ * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
+ return new stmt.
+ (reserve_phi_args_for_new_edge): Change call to above,
+ use gsi_set_stmt.
+
+ * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
+ (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
+ iterators. Adjust call to lower_omp.
+ (lower_lastprivate_clauses): Adjust call to lower_omp.
+ (lower_reduction_clauses): Ditto.
+ (expand_omp_taskreg): Nullify non-cfg body of child_fn.
+ (lower_omp_sections): Don't explicitely count sequence length,
+ nullify lowered bodies earlier, ensure stmts are part of only
+ one sequence, adjust call to lower_omp.
+ (lower_omp_single): Ensure stmts are part of only one sequence,
+ adjust call to lower_omp.
+ (lower_omp_master): Ditto.
+ (lower_omp_ordered): Ditto.
+ (lower_omp_critical): Ditto.
+ (lower_omp_for): Ditto.
+ (lower_omp_taskreg): Ditto, tidy.
+ (lower_omp_1): Adjust calls to lower_omp.
+ (execute_lower_omp): Ditto.
+ (lower_omp): Adjust to take pointer to sequence.
+ (diagnose_sb_2): Use walk_gimple_seq_mod.
+ (diagnose_omp_structured_block_errors): Ditto and set possibly
+ changed function body.
+ * gimple-low.c (lower_function_body): Set function body after
+ it stabilizes.
+ (lower_sequence): Adjust to take pointer to sequence.
+ (lower_omp_directive): Ensure stmt isn't put twice into the
+ sequence, adjust call to lower_sequence.
+ (lower_stmt): Adjust calls to lower_sequence.
+ (lower_gimple_bind): Ditto.
+ (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
+ * tree-nested.c (walk_body): Take pointer to sequence, use
+ walk_gimple_seq_mod.
+ (walk_function): Adjust call to walk_body, set possibly changed body.
+ (walk_gimple_omp_for): Adjust calls to walk_body.
+ (convert_nonlocal_omp_clauses): Ditto.
+ (convert_nonlocal_reference_stmt): Ditto.
+ (convert_local_omp_clauses): Ditto.
+ (convert_local_reference_stmt): Ditto.
+ (convert_tramp_reference_stmt): Ditto.
+ (convert_gimple_call): Ditto.
+ (convert_nl_goto_reference): Use local iterator copy.
+ * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
+ but taking pointer to sequence, ensure gsi_start is called with
+ callers lvalue.
+ (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
+ asserting that the sequence head didn't change.
+ (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
+ walk_gimple_seq_mod.
+ * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
+ (execute_lower_tm): Ditto, and set possibly changed body.
+ * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
+ call gsi_start with that lvalue.
+ (replace_goto_queue_stmt_list): Ditto.
+ (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
+ (replace_goto_queue): Ditto.
+ (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
+ (lower_try_finally_onedest): Ditto.
+ (lower_try_finally_copy): Ditto.
+ (lower_try_finally_switch): Ditto.
+ (lower_try_finally): Ditto.
+ (lower_eh_filter): Ditto.
+ (lower_eh_must_not_throw): Ditto.
+ (lower_cleanup): Ditto.
+ (lower_eh_constructs_2): Ditto.
+ (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
+ (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
+ set possibly changed body.
+ (optimize_double_finally): Call gsi_start with lvalue.
+
+ * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
+ (gimple_split_block): Ditto.
+ (gimple_merge_blocks): Use gsi_start_phis.
+ (move_stmt_r): Use walk_gimple_seq_mod.
+ * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
+ * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
+ (rebuild_cgraph_edges): Ditto.
+ (cgraph_rebuild_references): Ditto.
+ * ipa-prop.c (ipa_analyze_params_uses): Ditto.
+ * tree-inline.c (copy_phis_for_bb): Ditto.
+ * tree-ssa-dce.c: Ditto.
+
+ * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
+
+2012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
+ Andi Kleen <ak@linux.intel.com>
+
+ * coretypes.h (MEMMODEL_MASK): New.
+ * builtins.c (get_memmodel): Add val. Call target.memmodel_check
+ and return new variable.
+ (expand_builtin_atomic_exchange): Mask memmodel values.
+ (expand_builtin_atomic_compare_exchange): Ditto.
+ (expand_builtin_atomic_load): Ditto.
+ (expand_builtin_atomic_store): Ditto.
+ (expand_builtin_atomic_clear): Ditto.
+ * doc/extend.texi: Mention port-dependent memory model flags.
+ * config/i386/cpuid.h (bit_HLE): New.
+ * config/i386/driver-i386.c (host_detect_local_cpu): Detect
+ HLE support.
+ * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
+ * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
+ (ix86_target_string)<-mhle>: New.
+ (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
+ * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
+ (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
+ (ix86_option_override_internal) <PTA_HLE>: New switch, set it
+ enabled for generic, generic64 and core-avx2.
+ (ix86_print_operand): Generate HLE lock prefixes.
+ (ix86_memmodel_check): New.
+ (TARGET_MEMMODEL_CHECK): Ditto.
+ * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
+ (IX86_HLE_ACQUIRE): Ditto.
+ (IX86_HLE_RELEASE): Ditto.
+ * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
+ * config/i386/i386.opt (mhle): Ditto.
+ * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
+ success model to instruction emitter.
+ (atomic_fetch_add<mode>): Ditto.
+ (atomic_exchange<mode>): Ditto.
+ (atomic_add<mode>): Ditto.
+ (atomic_sub<mode>): Ditto.
+ (atomic_<code><mode>): Ditto.
+ (*atomic_compare_and_swap_doubledi_pic): Ditto.
+ (atomic_compare_and_swap_single<mode>): Define and use argument
+ for success model.
+ (atomic_compare_and_swap_double<mode>): Ditto.
+ * configure.ac: Check if assembler support HLE prefixes.
+ * configure: Regenerate.
+ * config.in: Ditto.
+
+2012-05-02 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR middle-end/53153
+ * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
+ split out from ...
+ (gimplify_switch_expr): ... here.
+ * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
+ * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
+ to clean up case labels with values outside the index type range.
+ (simplify_gimple_switch): Call it if something changed.
+ Remove strange and unnecessary assert.
+
+2012-05-02 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (div_if_zero_remainder): sizetypes no longer
+ sign-extend.
+ (int_const_binop_1): New worker for int_const_binop with
+ overflowable parameter. Pass it through to force_fit_type_double.
+ (int_const_binop): Wrap around int_const_binop_1 with overflowable
+ equal to one.
+ (size_binop_loc): Call int_const_binop_1 with overflowable equal
+ to minus one, forcing overflow detection for even unsigned types.
+ (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
+ (fold_binary_loc): Call try_move_mult_to_index with signed offset.
+ * stor-layout.c (initialize_sizetypes): sizetypes no longer
+ sign-extend.
+ (layout_type): For zero-sized arrays ignore overflow on the
+ size calculations.
+ * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
+ (bit_value_binop_1): Likewise.
+ * tree.c (double_int_to_tree): Likewise.
+ (double_int_fits_to_tree_p): Likewise.
+ (force_fit_type_double): Likewise.
+ (host_integerp): Likewise.
+ (int_fits_type_p): Likewise.
+ * varasm.c (output_constructor_regular_field): Sign-extend the
+ field-offset to cater for negative offsets produced by the Ada
+ frontend.
+ * omp-low.c (extract_omp_for_data): Convert the loop step to
+ signed for pointer adjustments.
+
+2012-05-02 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (valid_constant_size_p): New function.
+ * tree.h (valid_constant_size_p): Declare.
+ * cfgexpand.c (expand_one_var): Adjust check for too large
+ variables by using valid_constant_size_p.
+ * varasm.c (assemble_variable): Likewise.
+
+ * c-decl.c (grokdeclarator): Properly check for sizes that
+ cover more than half of the address-space.
+
+2012-05-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/53163
+ * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
+ return value from compute_all_dependences.
+
+ PR rtl-optimization/53160
+ * ree.c (combine_reaching_defs): Handle the case where cand->insn
+ has been modified by ree pass already.
+
+2012-05-01 Ian Lance Taylor <iant@google.com>
+
+ PR c/37303
+ * c-decl.c (build_compound_literal): Make the decl readonly if it
+ an array of a readonly type.
+ * gimplify.c (gimplify_compound_literal_expr): Add fallback
+ parameter. Change all callers. If the decl is not addressable
+ and is not an l-value, make it readonly.
+
+2012-05-01 Bernd Schmidt <bernds@codesourcery.com>
+
+ * ira.c (allocated_reg_info_size): New static variable.
+ (expand_reg_info): Manage it. Call
+ setup_preferred_alternate_classes_for_new_pseudos.
+ (ira): Don't do it here. Remove local allocated_reg_info_size,
+ set the global before calling find_moveable_pseudos.
+ (find_moveable_pseudos): Call expand_reg_info rather than
+ resize_reg_info.
+
+2012-05-01 Richard Henderson <rth@redhat.com>
+
+ * common.opt (fsync-libcalls): New.
+ * doc/invoke.texi: Document it.
+ * optabs.c (init_sync_libfuncs): Honor it.
+
+2012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
+ Richard Sandiford <r.sandiford@uk.ibm.com>
+
+ PR rtl-optimization/52543
+ * Makefile.in (lower-subreg.o, target-globals.o): Depend on
+ lower-subreg.h.
+ * lower-subreg.h: New file.
+ * target-globals.h (this_target_lower_subreg): Declare.
+ (target_globals): Add lower_subreg;
+ (restore_target_globals): Restore this_target_lower_subreg.
+ * target-globals.c: Include it.
+ (default_target_globals): Add default_target_lower_subreg.
+ (save_target_globals): Initialize target_lower_subreg.
+ * rtl.h (init_lower_subreg): Added declaration.
+ * toplev.c (backend_init_target): Call initializer for lower-subreg
+ pass.
+ * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
+ (default_target_lower_subreg): New variable.
+ (this_target_lower_subreg): Likewise.
+ (twice_word_mode, choices): New macros.
+ (shift_cost, compute_splitting_shift, compute_costs)
+ (init_lower_subreg): New functions.
+ (resolve_simple_move): Add speed_p argument. Check choices.
+ (find_pseudo_copy): Don't check the mode size here.
+ (resolve_simple_move): Assert the mode size.
+ (find_decomposable_shift_zext): Add speed_p argument and return
+ a bool. Check choices.
+ (resolve_shift_zext): Add comment.
+ (dump_shift_choices, dump_choices): New functions.
+ (decompose_multiword_subregs): Dump list of profitable
+ transformations. Add code to skip non profitable transformations.
+ Update calls to simple_move and find_decomposable_shift_zext.
+
+2012-05-01 Ian Bolton <ian.bolton@arm.com>
+ Sameera Deshpande <sameera.deshpande@arm.com>
+ Greta Yorsh <greta.yorsh@arm.com>
+
+ * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
+ (thumb1_unexpanded_epilogue): ...this.
+ * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
+ (thumb1_unexpanded_epilogue): ...this.
+ * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
+ (thumb1_unexpanded_epilogue): ...this.
+
+2012-05-01 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
+ comparing enumeration values. Update comments.
+
+2012-05-01 Alan Modra <amodra@gmail.com>
+
+ PR target/53038
+ * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
+ load_cr_save, add_crlr_cfa_restore): New functions.
+ (rs6000_restore_saved_cr): Rename to..
+ (restore_saved_cr): ..this. Add cfa_restore notes for cr.
+ (rs6000_emit_epilogue): Use new functions. Adjust condition
+ for emitting lr and cr cfa_restore. Emit cfa_restores for fp
+ regs when using out-of-line restore only when shrink wrapping.
+
+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/53136
+ * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
+ calls to cgraph_node_name in xstrdup.
+ (ipa_make_edge_direct_to_target): Ditto.
+ * cgraph.c (dump_cgraph_node): Ditto.
+ * tree-sra.c (convert_callers_for_node): Ditto.
+ * lto-symtab.c (lto_cgraph_replace_node): Ditto.
+ * ipa-cp.c (perhaps_add_new_callers): Ditto.
+ * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
+ (cgraph_materialize_all_clones): Ditto.
+ * ipa-inline.c (report_inline_failed_reason): Ditto.
+ (want_early_inline_function_p): Ditto.
+ (edge_badness): Ditto.
+ (update_edge_key): Ditto.
+ (flatten_function): Ditto.
+ (ipa_inline): Ditto.
+ (inline_always_inline_functions): Ditto.
+ (early_inline_small_functions): Ditto.
+
+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/53141
+ * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
+ constraints 0 and 1.
+
+012-04-30 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
+ (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
+ (cgraph_add_to_same_comdat_group): Remove.
+ (cgraph_add_asm_node): Move to cgraphunit.c.
+ (cgraph_make_decl_local): Move to symtab.c
+ (cgraph_make_node_local_1): Update.
+ (cgraph_can_remove_if_no_direct_calls_and): Update.
+ (used_from_object_file_p): Update.
+ (resolution_used_from_other_file_p): Move to symtab.c
+ (cgraph_used_from_object_file_p): move to symtab.c
+ (verify_cgraph_node): Verify same comdat groups.
+ * cgraph.h (cgraph_asm_node): Rename to ...
+ (asm_node): ... this one.
+ (cgraph_asm_nodes): Rename to ...
+ (asm_nodes): ... this one.
+ (symtab_add_to_same_comdat_group): New function.
+ (symtab_dissolve_same_comdat_group_list): New function.
+ (symtab_used_from_object_file_p): Declare.
+ (symtab_make_decl_local): Declare.
+ (cgraph_add_to_same_comdat_group): Remove.
+ (cgraph_add_asm_node): Remove.
+ (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
+ Remove.
+ (cgraph_finalize_compilation_unit): Rename to ...
+ (finalize_compilation_unit): ... this one.
+ (cgraph_optimize): Rename to ....
+ (compile): ... this one.
+ (add_asm_node): Declare.
+ (fixup_same_cpp_alias_visibility): Declare.
+ (cgraph_make_decl_local): Remove.
+ (varpool_assemble_pending_decls): Rename to ...
+ (varpool_output_variables): ... this one.
+ (varpool_remove_unreferenced_decls): Remove.
+ * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
+ (preserve_function_body_p): Make static.
+ * toplev.c (compile_file): Update comments; update.
+ * cgraphunit.c: Update comments.
+ (cgraph_expand_all_functions): Rename to ...
+ (expand_all_functions): ... this one; update.
+ (cgraph_mark_functions_to_output): Rename to ...
+ (mark_functions_to_output): ... this one; cleanup.
+ (cgraph_output_pending_asms): Remove prototype.
+ (asm_nodes, asm_last_node): New static vars.
+ (cgraph_process_new_functions): Update.
+ (cgraph_reset_node): Cleanup; add comment.
+ (cgraph_add_new_function): Update.
+ (cgraph_output_pending_asms): Rename to ...
+ (output_asm_statements): ... this one.
+ (add_asm_node): New function.
+ (fixup_same_cpp_alias_visibility): New function based on code
+ in cgraph_analyze_function.
+ (cgraph_analyze_function): Use it.
+ (cgraph_order_sort): Update.
+ (cgraph_output_in_order): Update.
+ (cgraph_function_versioning): Update.
+ (cgraph_optimize): Rename to ...
+ (compile): ... this one; initialize streamer hooks here.
+ (cgraph_finalize_compilation_unit): Rename to ...
+ (finalize_compilation_unit): ... this one; do not initialize streamer
+ hook here.
+ * lto-streamer-out.c (lto_output_toplevel_asms): Update.
+ * dwarf2out.c: Update ocmment.
+ * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
+ * method.c (use_thunk): Likewise.
+ * semantics.c (maybe_add_lambda_conv_op): Likewise.
+ * decl2.c (maybe_emit_vtables): Likewise.
+ (cp_write_global_declarations): Use finalize_compilation_unit.
+ * parser.c (cp_parser_asm_definition): Use add_asm_node.
+ * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
+ * c-decl.c (c_write_global_declarations): Use
+ finalize_compilation_unit.
+ * langhooks.c (write_global_declarations): Update.
+ * ipa.c (cgraph_externally_visible_p): Update.
+ (dissolve_same_comdat_group_list): Remove.
+ (function_and_variable_visibility): Update.
+ * symtab.c: Inlcude lto-streamer.h and rtl.h
+ (ld_plugin_symbol_resolution_names): New.
+ (symtab_add_to_same_comdat_group): New.
+ (symtab_dissolve_same_comdat_group_list): New.
+ (resolution_used_from_other_file_p): Move here from cgraph.c
+ (symtab_used_from_object_file_p): New.
+ (symtab_make_decl_local): New.
+ * passes.c (register_pass): Update comments.
+ * c-parser.c (c_parser_asm_definition): Update.
+ * varpool.c (varpool_analyze_node): Use
+ fixup_same_cpp_alias_visibility.
+ (varpool_remove_unreferenced_decls): Make static.
+ (varpool_assemble_pending_decls): Rename to ...
+ (varpool_output_variables): ... this one; call
+ varpool_remove_unreferenced_decls.
+ (varpool_used_from_object_file_p): Remove.
+
+2012-04-30 Marc Glisse <marc.glisse@inria.fr>
+
+ PR c++/51033
+ * c-typeck.c (build_array_ref): Call
+ convert_vector_to_pointer_for_subscript.
+ * doc/extend.texi (Vector Extensions): Subscripting not just for C.
+
+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
+ to compile-time "mode == <MODE>mode" checks.
+ (and splitter): Ditto.
+
+2012-04-30 Richard Henderson <rth@redhat.com>
+
+ * config/arm/arm.md (UNSPEC_LL): New.
+ * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
+ (arm_load_exclusivedi): Use %H0.
+
+2012-04-30 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (comdat_symbol_id): Add const.
+ (union die_symbol_or_type_node): Add const to die_symbol.
+ (output_die_symbol, output_die, output_comp_unit): Adjust.
+
+2012-04-30 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
+ * config/arm/neon.md (negdi2_neon): New insn.
+ Also add splitters for core and NEON registers.
+
+2012-04-30 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm.c (neon_valid_immediate): Allow const_int.
+ (arm_print_operand): Add 'x' format.
+ * config/arm/constraints.md (Dn): Allow const_int.
+ * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
+ Use 'x' format to print constants.
+ * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
+ * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
+ is enabled.
+ (movdi_vfp_cortexa8): Likewise.
+
+2012-04-30 Ian Bolton <ian.bolton@arm.com>
+ Sameera Deshpande <sameera.deshpande@arm.com>
+ Greta Yorsh <greta.yorsh@arm.com>
+
+ * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
+ * config/arm/arm.c (ldm_stm_operation_p): New function.
+ * config/arm/predicates.md (load_multiple_operation): Update predicate.
+ (store_multiple_operation): Likewise.
+
+ * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
+ * config/arm/arm.c (ldm_stm_operation_p): New parameters.
+ * config/arm/predicates.md (load_multiple_operation): Add arguments.
+ (store_multiple_operation): Likewise.
+
+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (and<mode>3): Expand masking operations with
+ 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
+ (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
+
2012-04-30 Dodji Seketeli <dodji@redhat.com>
Add -Wvarargs option
* builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
- argument for the various warning_at calls.
+ argument for the various warning_at calls.
* docs/invoke.texi: Update the documentation.
2012-04-30 Dodji Seketeli <dodji@redhat.com>
Make conversion warnings work on NULL with -ftrack-macro-expansion
* input.h (expansion_point_location_if_in_system_header): Declare
new function.
- * input.c (expansion_point_location_if_in_system_header): Define
- it.
+ * input.c (expansion_point_location_if_in_system_header): Define it.
Fix -Wuninitialized for -ftrack-macro-expansion
- * tree-ssa.c (warn_uninit): Use the spelling location of the
- variable declaration. Use linemap_location_before_p for source
- locations.
+ * tree-ssa.c (warn_uninit): Use the spelling location of the variable
+ declaration. Use linemap_location_before_p for source locations.
Strip "<built-in>" loc from displayed expansion context
* input.c (expand_location_1): When expanding to spelling location
2012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
- * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
- * common.opt (Wmissing-noreturn): Alias of -Wsuggest-attribute=noreturn.
+ * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
+ * common.opt (Wmissing-noreturn): Alias of
+ -Wsuggest-attribute=noreturn.
2012-04-29 Hans-Peter Nilsson <hp@axis.com>
2012-04-27 Paolo Bonzini <bonzini@gnu.org>
- * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs
- whose arguments are -1 and 0, by negating the result of the
- conditional.
+ * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
+ arguments are -1 and 0, by negating the result of the conditional.
2012-04-27 Paolo Bonzini <bonzini@gnu.org>
* config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
(fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
(fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
- fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to
- fgm_mul.
+ fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
(alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
alignaddrldi_vis): Set type to gsr.
(pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
2012-04-25 H.J. Lu <hongjiu.lu@intel.com>
PR debug/52857
- * dwarf2out.c (dbx_reg_number): Assert return value !=
- INVALID_REGNUM.
+ * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
2012-04-25 Jakub Jelinek <jakub@redhat.com>
2012-04-25 Jan Hubicka <jh@suse.cz>
- PR middle-end/53089
- * cgraphunit.c (referred_to_p): Move ahead in file to avoid forward declaration.
+ PR middle-end/53089
+ * cgraphunit.c (referred_to_p): Move ahead in file to avoid
+ forward declaration.
(cgraph_finalize_function): Finalize them here.
* symtab.c (dump_symtab): Dump ctors and dtors.
Also check that unit bytes long store at bitpos / unit * unit
doesn't affect bits beyond bitregion_end.
* expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
- would not fit into bitregion_start ... bitregion_end + 1 bit
- region.
+ would not fit into bitregion_start ... bitregion_end + 1 bit region.
(store_split_bit_field): Decrease unit close to end of bitregion_end
if access is restricted in order to avoid mutual recursion.
prototypes.
* double-int.c (double_int_max_value, double_int_min_value): New
functions.
- * tree-vrp.c (register_edge_assert_for_2): Compare mask
- for LE_EXPR or GT_EXPR with double_int_max_value
- instead of double_int_mask.
+ * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
+ or GT_EXPR with double_int_max_value instead of double_int_mask.
2012-04-25 Richard Guenther <rguenther@suse.de>
* tree-vect-loop.c (vect_transform_loop): Adjust.
* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
the maximum number of iterations for the epilogue loop.
- (vect_loop_versioning): Remove case re-using the peeled
- epilogue loop.
+ (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
2012-04-25 Jakub Jelinek <jakub@redhat.com>