+2011-04-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/options.texi (Negative): Explicitly mention that the
+ Negative chain must be circular.
+
+2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
+
+ * function.h (block_chainon): Declare.
+ * function.c (block_chainon): Define.
+
+2011-04-14 Anatoly Sokolov <aesok@post.ru>
+ Eric Weddington <eric.weddington@atmel.com>
+ Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.c: ("insn-codes.h", "optabs.h", "langhooks.h"):
+ New Includes
+ (avr_init_builtins, avr_expand_builtin,
+ avr_expand_delay_cycles, avr_expand_unop_builtin,
+ avr_expand_binop_builtin ): New functions.
+ (avr_builtin_id): New enum
+ (struct avr_builtin_description): New struct
+ (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
+ (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
+
+ * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
+ UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
+ UNSPECV_DELAY_CYCLES): new enumeration values
+ (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
+ ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
+ ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
+ ("*rotlqi3_4"): rename insn to "rotlqi3_4"
+ ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
+ "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
+ "fmulsu"): New insns
+
+ * config/avr/avr-c.c: fix line endings
+ (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
+ __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
+ __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
+ __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
+ __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
+
+ * doc/extend.texi (AVR Built-in Functions): New node
+ (Target Builtins): Add documentation of AVR
+ built-in functions.
+
+2011-04-14 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/44643
+ * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
+ alone. Error if non-const data has attribute progmem.
+
+2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (struct tree_constructor): Include tree_typed instead of
+ tree_common.
+ * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
+ TS_TYPED instead of TS_COMMON.
+
+2011-04-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
+ (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
+ (sse2_psadbw): Merge with *avx_psadbw.
+ (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
+ (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
+ (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
+ (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
+ (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
+ (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
+ (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
+ (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
+ (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
+ (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
+ (ssse3_palignrti): Merge with *avx_palignrti.
+
+2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
+ * tree-ssanames.c (fini_ssanames): VEC_free it.
+ (make_ssa_name_fn): Update for VECness of free_ssanames.
+ (release_ssa_name, release_dead_ssa_names): Likewise.
+ * tree.h (struct tree_ssa_name): Include tree_typed instead of
+ tree_common.
+ * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
+ TS_TYPED instead of TS_COMMON.
+
+2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
+
+ * postreload-gcse.c (gcse_after_reload_main): Add calls to
+ statistics_counter_event.
+ * tree-ssa-copyrename.c (stats): Define.
+ (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
+ statistics_counter_event.
+ * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
+ (bswap_stats, widen_mul_stats): Define.
+ (insert_reciprocals): Increment rdivs_inserted.
+ (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
+ rfuncs_inserted. Add calls to statistics_counter_event.
+ (execute_cse_sincos_1): Increment inserted.
+ (execute_cse_sincos): Zeroize sincos_stats. Add call to
+ statistics_counter_event.
+ (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
+ of bswap_stats. Add calls to statistics_counter_event.
+ (convert_mult_to_widen): Increment widen_mults_inserted.
+ (convert_plusminus_to_widen): Increment maccs_inserted.
+ (convert_mult_to_fma): Increment fmas_inserted.
+ (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
+ calls to statistics_counter_event.
+
+2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/48455
+ * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
+ `temp_costs->mem_cost'.
+
+2011-04-13 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.h: New file.
+ * ipa-inline-analysis.c: New file. Broken out of ...
+ * ipa-inline.c: ... this file; update toplevel comment;
+ include ipa-inline.h
+ (inline_summary): Move to ipa-inline.h
+ (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
+ ipa-inline-analysis.c.
+ (cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining;
+ move to ipa-inline-analysis.c
+ (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
+ to estimate_edge_growth.
+ (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
+ rename to estimate_size_after_inlining.
+ (cgraph_mark_inline_edge): Update for new naming convention.
+ (cgraph_check_inline_limits): Likewise.
+ (cgraph_edge_badness): Likewise.
+ (cgraph_decide_recursive_inlining): Likewise.
+ (cgraph_decide_inlining_of_small_functions): Likewise.
+ (cgraph_decide_inlining_incrementally): Likewise.
+ (cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c.
+ (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
+ (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
+ (compute_inline_parameters): Likewise.
+ (compute_inline_parameters_for_current): Likewise.
+ (pass_inline_parameters): Likewise.
+ (inline_indirect_intraprocedural_analysis): Likewise.
+ (analyze_function): Rename to inline_analyze_function; likewise.
+ (add_new_function): Move to ipa-inline-analysis.c.
+ (inline_generate_summary): Likewise.
+ (inline_read_summary): Likewise.
+ (inline_write_summary): Likewise.
+ * Makefile.in (ipa-inline-analysis.c): New file.
+
+2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
+ * configure: Regenerate.
+
+2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
+ instead of tree_common.
+ (struct tree_fixed_cst, struct tree_string, struct tree_complex):
+ Likewise.
+ * tree.c (initialize_tree_contains_struct): Mark such nodes as being
+ TS_TYPED rather than TS_COMMON.
+ * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
+
+2011-04-01 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/45263
+ * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
+ r20 around calls of __tablejump_elpm__
+
+2011-04-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/48591
+ * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
+ NULL.
+ (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
+
+2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
+
+ * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
+ (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
+ (cfi_vec): New typedef.
+ (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
+ dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
+ (cie_cfi_vec): New static variable.
+ (cie_cfi_head): Delete.
+ (add_cfi): Accept a cfi_vec * as first argument. All callers and
+ declaration changed. Use vector rather than list operations.
+ (new_cfi): Don't initialize the dw_cfi_next field.
+ (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
+ rather than list operations.
+ (lookup_cfa): Use vector rather than list operations.
+ (output_cfis): New argument upto. Accept a cfi_vec rather than
+ a dw_cfi_ref list head as argument. All callers changed.
+ Iterate over the vector using upto as a maximum index.
+ (output_all_cfis): New static function.
+ (output_fde): Use vector rather than list operations. Use the
+ new upto argument for output_cfis rather than manipulating a
+ list.
+ (dwarf2out_begin_prologue): Change initializations to match
+ new struct members.
+ (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
+ from the vector length rather than searching for the end of a list.
+ Use output_all_cfis.
+ (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
+
+2011-04-13 Nick Clifton <nickc@redhat.com>
+
+ * config/rx/rx.md (movmemsi): Do not use this pattern when
+ volatile pointers are involved.
+
+2011-04-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (pinsrbits): Remove.
+ (sse2_packsswb): Merge with *avx_packsswb.
+ (sse2_packssdw): Merge with *avx_packssdw.
+ (sse2_packuswb): Merge with *avx_packuswb.
+ (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
+ (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
+ (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
+ (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
+ (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
+ (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
+ (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
+ (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
+ (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
+ (*sse4_1_pinsrq): Merge with *avx_pinsrq.
+ (sse2_loadld): Merge with *avx_loadld.
+ (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
+ (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
+ (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
+ (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
+ (vec_concatv2di): Merge with *vec_concatv2di_avx.
+
+2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
+
+ * c-decl.c (union lang_tree_node): Check for TS_COMMON before
+ calling TREE_CHAIN.
+ * print-tree.c (print_node): Likewise.
+ * tree-inline.c (copy_tree_r): Likewise.
+ * c-lang.c (LANG_HOOKS_INIT_TS): Define.
+ * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
+ instead of TS_COMMON.
+ * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
+ * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
+ (copy_node_stat): Zero TREE_CHAIN only if necessary.
+ (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
+ (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
+ ...and these...
+ (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
+ * tree.h: ...here.
+ (TREE_CHAIN): Check for a TS_COMMON structure.
+ (TREE_TYPE): Check for a TS_TYPED structure.
+
+2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/rs6000.c (call_ABI_of_interest): Call
+ cgraph_get_create_node instead of cgraph_node.
+
+2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * c-parser.c (c_parser_initelt): Updated call to
+ objc_build_message_expr.
+ (c_parser_postfix_expression): Likewise.
+
+2011-04-12 Kai Tietz <ktietz@redhat.com>
+
+ * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
+ MASK_MS_BITFIELD_LAYOUT bit.
+
+2011-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
+ assert it is always true.
+ (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
+ moves.
+
+2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * c-parser.c (c_lex_one_token): Rewritten conditional used when
+ compiling Objective-C to be more efficient.
+
+2011-04-12 Axel Freyn <axel-freyn@gmx.de>
+
+ * opts-common.c (decode_cmdline_options_to_array): Remove variable
+ argv_copied.
+
+2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * recog.h, genoutput.c, optabs.c: Revert last patch.
+
+2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
+ PR target/48090
+ * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
+
+2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * recog.h (insn_operand_data): Add an "allows_mem" field.
+ * genoutput.c (output_operand_data): Initialize it.
+ * optabs.c (maybe_legitimize_operand_same_code): New function.
+ (maybe_legitimize_operand): Use it when matching the original
+ op->value.
+
+2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * genpreds.c (process_define_predicate): Move most processing
+ to gensupport.c. Continue to validate the expression.
+ * genrecog.c (did_you_mean_codes, compute_predicate_codes)
+ (process_define_predicate): Move processing to gensupport.c.
+ (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
+ * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
+ (compute_predicate_codes): Moved from genrecog.c. Add lineno
+ argument.
+ (valid_predicate_name_p): New function, split out from old
+ genpreds.c:process_define_predicate.
+ (process_define_predicate): New function, combining code from
+ old genpreds.c and genrecog.c functions.
+ (process_rtx): Call it for DEFINE_PREDICATE and
+ DEFINE_SPECIAL_PREDICATE.
+
+2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
+ size of a '%A' memory reference.
+ (T_DREG, T_QREG): New neon_builtin_type_bits.
+ (arm_init_neon_builtins): Assert that the load and store operands
+ are neon_struct_operands.
+ (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
+ (NEON_ARG_MEMORY): New builtin_arg.
+ (neon_dereference_pointer): New function.
+ (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
+ Handle NEON_ARG_MEMORY.
+ (arm_expand_neon_builtin): Update after above interface changes.
+ Use NEON_ARG_MEMORY for loads and stores.
+ * config/arm/predicates.md (neon_struct_operand): New predicate.
+ * config/arm/iterators.md (V_two_elem): Tweak formatting.
+ (V_three_elem): Use BLKmode for accesses that have no associated mode.
+ (V_four_elem): Tweak formatting.
+ * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
+ (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
+ (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
+ (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
+ (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
+ (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
+ (neon_vst4<mode>): Replace pointer operand with a memory operand.
+ Use %A in the output template.
+ (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
+ (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
+ (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
+ the width of the memory access. Remove post-increment.
+ * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
+
+2011-04-12 Nick Clifton <nickc@redhat.com>
+
+ * config/v850/v850.c (expand_prologue): Do not use the CALLT
+ instruction for interrupt handlers if the target is the basic V850
+ architecture.
+ (expand_epilogue): Likewise.
+
+2011-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/48549
+ * combine.c (propagate_for_debug): Also stop after BB_END of
+ this_basic_block. Process LAST and just stop processing after it.
+ (combine_instructions): If last_combined_insn has been deleted,
+ set last_combined_insn to its PREV_INSN.
+
+2011-04-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/46076
+ * gimple.h (struct gimple_statement_call): Add fntype field.
+ (gimple_call_fntype): Adjust.
+ (gimple_call_set_fntype): New function.
+ * gimple.c (gimple_build_call_1): Set the call function type.
+ * gimplify.c (gimplify_call_expr): Preserve the function
+ type the frontend used for the call.
+ (gimplify_modify_expr): Likewise.
+ * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
+ function type.
+ * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
+ function type.
+ * tree-ssa.c (useless_type_conversion_p): Function pointer
+ conversions are useless.
+
+2011-04-12 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.h (cgraph_node): Remove function declaration.
+ (cgraph_create_node): Declare.
+ (cgraph_get_create_node): Likewise.
+ * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
+ Updated all callers.
+ (cgraph_node): Renamed to cgraph_create_node, assert that a node for
+ the decl does not already exist. Call cgraph_get_create_node instead
+ of cgraph_node.
+ (cgraph_get_create_node): New function.
+ (cgraph_same_body_alias): Update comment.
+ (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
+ assert it does not return NULL.
+ (cgraph_update_edges_for_call_stmt): Likewise.
+ (cgraph_clone_edge): Likewise.
+ (cgraph_create_virtual_clone): Likewise.
+ (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
+ instead of cgraph_node.
+ (cgraph_add_new_function): Call cgraph_create_node or
+ cgraph_get_create_node instead of cgraph_node.
+ * cgraphbuild.c (record_reference): Call cgraph_get_create_node
+ instead of cgraph_node.
+ (record_eh_tables): Likewise.
+ (mark_address): Likewise.
+ (mark_load): Likewise.
+ (build_cgraph_edges): Call cgraph_get_create_node instead
+ of cgraph_node.
+ (rebuild_cgraph_edges): Likewise.
+ * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
+ instead of cgraph_node.
+ (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
+ cgraph_node.
+ * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
+ cgraph_create_node instead of cgraph_node.
+ * c-decl.c (finish_function): Call cgraph_get_create_node instead
+ of cgraph_node.
+ * lto-cgraph.c (input_node): Likewise.
+ * lto-streamer-in.c (input_function): Likewise.
+ * varasm.c (mark_decl_referenced): Likewise.
+ (assemble_alias): Likewise.
+
+2011-04-12 Martin Jambor <mjambor@suse.cz>
+
+ * tree-inline.c (tree_function_versioning): Call cgraph_get_node
+ instead of cgraph_node and assert it does not return NULL.
+ * lto-streamer-in.c (lto_read_body): Likewise.
+ * omp-low.c (new_omp_context): Likewise.
+ (create_task_copyfn): Likewise.
+ * tree-emutls.c (lower_emutls_function_body): Likewise.
+ * matrix-reorg.c (transform_allocation_sites): Likewise.
+
+2011-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/48552
+ * c-typeck.c (build_asm_expr): Error out on attempts to use
+ void type outputs or inputs for constraints that allow reg or
+ don't allow memory.
+
+2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
+ Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/48250
+ * config/arm/arm.c (arm_legitimize_reload_address): Update cases
+ to use sign-magnitude offsets. Reject unsupported unaligned
+ cases. Add detailed description in comments.
+ * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
+ condition from TARGET_32BIT to TARGET_ARM.
+
+2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (struct typed_tree): New.
+ (struct tree_common): Include it instead of tree_base.
+ (TREE_TYPE): Update for new location of type field.
+ (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
+ (DECL_USER_ALIGN, DECL_PACKED): Likewise.
+ (union tree_node): Add typed field.
+ * treestruct.def (TS_TYPED): New.
+ * lto-streamer.c (check_handled_ts_structures): Handle it.
+ * tree.c (MARK_TS_TYPED): New macro.
+ (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
+
+2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
+ (force_nonfallthru): Do not alter the loop nest if no basic block
+ was created.
+
+2011-04-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (VI): New mode iterator.
+ (SSEMODEI): Remove.
+ (AVX256MODEI): Ditto.
+ (AVXMODEF4P): Ditto.
+ (avxvecpsmode): Ditto.
+ (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
+ (sse2_andnot<mode>3): New expander.
+ (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
+ *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
+ (<any_logic:code><mode>3): Use VI mode iterator.
+ (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
+ and *avx_<any_logic:code><mode>3. Use VI mode iterator.
+ (*andnottf3): Handle AVX three-operand constraints.
+ (*<any_logic:code>tf3): Handle AVX three-operand constraints.
+
+2011-04-11 Joseph Myers <joseph@codesourcery.com>
+ Robert Millan <rmh@gnu.org>
+
+ * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
+ * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
+ GNU_USER_DYNAMIC_LINKER64): Define.
+ (REG_NAME): Don't undefine.
+ (MD_UNWIND_SUPPORT): Undefine.
+ * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
+ (REG_NAME): Don't undefine.
+ (MD_UNWIND_SUPPORT): Undefine.
+ * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
+
+2011-04-11 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
+ (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
+
+2011-04-11 Xinliang David Li <davidxl@google.com>
+
+ * value-profile.c (check_ic_target): New function.
+ (gimple_ic_transform): Sanity check indirect call target.
+ * gimple-low.c (gimple_check_call_args): Interface change.
+ (gimple_check_call_matching_types): New function.
+ * tree-inline.c (tree_can_inline_p): Call new function.
+
+2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
+ tree-pretty-print.h & realmpfr.h.
+
+2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/48464
+ * ira.c (setup_pressure_classes): Fix typo in loop condition.
+ (setup_allocno_and_important_classes): Ditto.
+
+2011-04-11 Joseph Myers <joseph@codesourcery.com>
+
+ * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
+ LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
+ (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
+ GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
+ LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
+ (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
+ GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
+ GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
+ * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
+ GNU_USER_DYNAMIC_LINKER64): Remove.
+ * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
+ GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
+ GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
+ to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
+ GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
+ (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
+ (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
+ * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
+ GNU_USER_DYNAMIC_LINKER.
+ (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
+ GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
+ GNU_USER_DYNAMIC_LINKERN32.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
+ GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
+ GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
+ GNU_USER_DYNAMIC_LINKER32.
+ * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
+ * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
+ GNU_USER_DYNAMIC_LINKER32.
+ (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
+ * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
+ GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
+ GNU_USER_DYNAMIC_LINKER64.
+ * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
+ GNU_USER_DYNAMIC_LINKER32.
+ (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
+ GNU_USER_DYNAMIC_LINKER64.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
+ GNU_USER_DYNAMIC_LINKER64.
+ * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
+ LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
+ (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
+
+2011-04-11 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/gnu-user.h: Copy from linux.h. Update comments.
+ (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
+ (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
+ GNU_USER_DYNAMIC_LINKER.
+ (MD_UNWIND_SUPPORT, REG_NAME): Remove.
+ * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
+ (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
+ (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
+ GNU_USER_DYNAMIC_LINKER64.
+ (MD_UNWIND_SUPPORT, REG_NAME): Remove.
+ * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
+ GNU_USER_LINK_EMULATION.
+ * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
+ DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
+ ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
+ MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
+ PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
+ CPP_SPEC, CC1_SPEC): Remove.
+ (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
+ (GNU_USER_DYNAMIC_LINKER): Define.
+ (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
+ ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
+ ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
+ LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
+ TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
+ STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
+ TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
+ * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
+ CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
+ TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
+ LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
+ LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
+ (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
+ (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
+ TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
+ TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
+ * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
+ GNU_USER_DYNAMIC_LINKER.
+ * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
+ GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
+ * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
+ GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
+ * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
+ GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
+ * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
+ i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
+ i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
+ x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
+
+2011-04-11 Kai Tietz <ktietz@redhat.com>
+
+ PR target/9601
+ PR target/11772
+ * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
+ * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
+ comment.
+ (ix86_is_msabi_thiscall): Removed.
+ (ix86_is_type_thiscall): Likewise.
+ (ix86_get_callcvt): New function.
+ (ix86_comp_type_attributes): Simplify check.
+ (ix86_function_regparm): Use ix86_get_callcvt for calling
+ convention attribute checks.
+ (ix86_return_pops_args): Likewise.
+ (ix86_static_chain): Likewise.
+ (x86_this_parameter): Likewise.
+ (x86_output_mi_thunk): Likewise.
+ (ix86_function_type_abi): Optimize check for types without attributes.
+ * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
+ IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
+ IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
+ by flag-values.
+ (IX86_BASE_CALLCVT): Helper macro.
+ * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
+ Use ix86_get_callcvt for calling convention attribute checks and avoid
+ symbol-decoration for stdcall in TARGET_RTD case.
+ * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
+ Likewise.
+ (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
+ for declaration.
+
+2011-04-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (VI_128): New mode iterator.
+ (VI12_128): Rename from SSEMODE12.
+ (VI14_128): Rename from SSEMODE14.
+ (VI124_128): New mode iterator.
+ (VI24_128): Rename from SSEMODE248.
+ (VI248_128): Rename from SSEMODE248.
+ (SSEMODE124C8): Remove.
+ (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
+ (*sse2_<plusminus_insn><mode>3): Merge with
+ *avx_<plusminus_insn><mode>3.
+ (*mulv8hi3): Merge with *avx_mulv8hi3.
+ (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
+ (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
+ (*sse2_pmaddwd): Merge with *avx_pmaddwd.
+ (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
+ (ashr<mode>3): Merge with *avx_ashr<mode>3.
+ (lshr<mode>3): Merge with *avx_lshr<mode>3.
+ (ashl<mode>3): Merge with *avx_ashl<mode>3.
+ (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
+ (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
+ (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
+ (*<smaxmin:code>v8hi3): Ditto.
+ (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
+ (*<smaxmin:code>v16qi3): Ditto.
+ (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
+ (*sse2_eq<mode>3): Ditto.
+ (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
+ (*sse2_gt<mode>3): Ditto.
+ (vcondv2di): Split out of vcond<mode>.
+ (vconduv2di): Split out of vcondu<mode>.
+
+2011-04-11 Richard Guenther <rguenther@suse.de>
+
+ * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
+ before calling tree_low_cst.
+
+2011-04-11 Richard Guenther <rguenther@suse.de>
+
+ * stor-layout.c (layout_type): Compute all array index size operations
+ in the original type.
+ (initialize_sizetypes): Add comment.
+ (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
+
+2011-04-11 Joseph Myers <joseph@codesourcery.com>
+
+ * common.opt (Tbss=, Tdata=, Ttext=): New options.
+
+2011-04-11 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
+ of cgraph_node, handle NULL return value.
+ (cgraph_global_info): Likewise.
+ (cgraph_rtl_info): Likewise.
+ * tree-inline.c (estimate_num_insns): Likewise.
+ * gimplify.c (unshare_body): Likewise.
+ (unvisit_body): Likewise.
+ (gimplify_body): Likewise.
+ * predict.c (optimize_function_for_size_p): Likewise.
+ * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
+ (call_may_clobber_ref_p_1): Likewise.
+ * varasm.c (function_section_1): Likewise.
+ (assemble_start_function): Likewise.
+
+2011-04-11 Martin Jambor <mjambor@suse.cz>
+
+ * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
+ of cgraph_node.
+ * final.c (rest_of_clean_state): Likewise.
+ * gimple-iterator.c (update_call_edge_frequencies): Likewise.
+ * passes.c (pass_init_dump_file): Likewise.
+ (execute_all_ipa_transforms): Likewise.
+ (function_called_by_processed_nodes_p): Likewise.
+ * predict.c (maybe_hot_frequency_p): Likewise.
+ (probably_never_executed_bb_p): Likewise.
+ (compute_function_frequency): Likewise.
+ * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
+ (unnest_nesting_tree_1): Likewise.
+ (lower_nested_functions): Likewise.
+ * tree-optimize.c (execute_fixup_cfg): Likewise.
+ (tree_rest_of_compilation): Likewise.
+ * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
+ * tree-sra.c (ipa_early_sra): Likewise.
+ * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
+ * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
+ * ipa.c (record_cdtor_fn): Likewise.
+ * ipa-inline.c (cgraph_early_inlining): Likewise.
+ (compute_inline_parameters_for_current): Likewise.
+ * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
+ * ipa-pure-const.c (local_pure_const): Likewise.
+ * ipa-split.c (split_function): Likewise.
+ (execute_split_functions): Likewise.
+ * cgraphbuild.c (build_cgraph_edges): Likewise.
+ (rebuild_cgraph_edges): Likewise.
+ (cgraph_rebuild_references): Likewise.
+ (remove_cgraph_callee_edges): Likewise.
+ * cgraphunit.c (cgraph_mark_if_needed): Likewise.
+ (verify_cgraph_node): Likewise.
+ (cgraph_analyze_functions): Likewise.
+ (cgraph_preserve_function_body_p): Likewise.
+ (save_inline_function_body): Likewise.
+ (save_inline_function_body): Likewise.
+ * tree-inline.c (copy_bb): Likewise.
+ (optimize_inline_calls): Likewise.
+
+2011-04-11 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/48195
+ * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
+ ipa_check_create_edge_args.
+ (ipcp_generate_summary): Do not call ipa_check_create_node_params and
+ ipa_check_create_edge_args.
+ * ipa-inline.c (inline_generate_summary): Do not call
+ ipa_check_create_node_params and ipa_check_create_edge_args.
+ * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
+ ipa_check_create_edge_args.
+
+2011-04-09 Anatoly Sokolov <aesok@post.ru>
+
+ * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
+ instead of loop.
+ * sel-sched.c (mark_unavailable_hard_regs): Likewise.
+ * function.c (record_hard_reg_sets): Likewise.
+ * ira.c (compute_regs_asm_clobbered): Likewise.
+ * sched-deps.c (sched_analyze_1): Likewise.
+ * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
+
+2011-04-09 Xinliang David Li <davidxl@google.com>
+
+ PR tree-optimization/PR48484
+ * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
+ has_valid_pred lazily
+
+2011-04-09 Duncan Sands <baldrick@free.fr>
+
+ * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
+
+2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * combine.c (combine_validate_cost): Adjust comments. Set registered
+ cost of I0 to zero at the end, if any.
+
+2011-04-08 Xinliang David Li <davidxl@google.com>
+
+ * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
+ to insane profile data.
+
+2011-04-08 Xinliang David Li <davidxl@google.com>
+
+ * final.c (dump_basic_block_info): New function.
+ (final): Dump basic block.
+ (final_scan_insn): Remove old dump.
+
+2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR target/47829
+ * config.gcc (i386-*-freebsd): Disable unwind table generation for
+ crtbegin/crtend.
+
+2011-04-08 Michael Matz <matz@suse.de>
+
+ PR middle-end/48389
+ * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
+ functions.
+ (rebuild_jump_labels): Call rebuild_jump_labels_1.
+ * rtl.h (rebuild_jump_labels_chain): Declare.
+ * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
+ insns inserted on edges.
+
+2011-04-08 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
+ * config/arm/arm-arches.def: New.
+ * config/arm/arm-opts.h: New.
+ * config/arm/genopt.sh: New.
+ * config/arm/arm-tables.opt: New (generated).
+ * config/arm/arm.c (arm_handle_option, arm_target_help,
+ TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
+ (all_architectures): Get most table contents from arm-arches.def.
+ (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
+ arm_selected_tune here.
+ * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
+ * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
+ (march=, mcpu=, mtune=): Use Enum and Var.
+ * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
+ (arm.o): Update dependencies.
+
+2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
+ of header_file.
+ (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
+ (write_typed_alloc_defns): Likewise.
+ (main): Calls write_typed_alloc_defns with output_header.
+
+2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR inline-asm/48435
+ * ira-color.c (setup_profitable_hard_regs): Add comments.
+ Don't take prohibited hard regs into account.
+ (setup_conflict_profitable_regs): Rename to
+ get_conflict_profitable_regs.
+ (check_hard_reg_p): Check prohibited hard regs.
+
+2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
+ * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
+ * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
+
+2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/48366
+ * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
+ move from floating point to shift amount register .
+ (emit_move_sequence): Remove secondary reload support for floating
+ point to shift amount amount register copies.
+ (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
+ amount register copies.
+ * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
+ register, return false if mode isn't a scalar integer mode.
+ * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
+
+2011-04-08 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gimple_call_flags): Remove kludge.
+
+2011-04-08 Alexander Monakov <amonakov@ispras.ru>
+
+ * sel-sched.c (sel_region_init): Move call to
+ sel_setup_region_sched_flags after setup_current_loop_nest.
+
+2011-04-08 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/48272
+ * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
+ init_insn_reg_pressure_info. Adjust a caller.
+ * sched-int.h (init_insn_reg_pressure_info): Declare.
+ * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
+ when sched-pressure is enabled.
+
+2011-04-08 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gimple_set_modified): Do not queue calls to
+ MODIFIED_NORETURN_CALLS here ...
+ * tree-ssa-operands.c (update_stmt_operands): ... but here.
+
+2011-04-08 Richard Guenther <rguenther@suse.de>
+
+ PR lto/48467
+ * toplev.c (lang_dependent_init): Do not open asm_out_file
+ in WPA mode, nor perform debug machinery initialization.
+ (finalize): Do not unlink asm_out_file in WPA mode.
+
+2011-04-08 Richard Guenther <rguenther@suse.de>
+
+ * gimple.h (gimple_call_fntype): New function.
+ (gimple_call_return_type): Use it.
+ * expr.c (expand_expr_real_1): Use gimple_call_fntype.
+ * gimple-low.c (gimple_check_call_args): Likewise.
+ * gimple.c (gimple_call_flags): Likewise.
+ (gimple_call_arg_flags): Likewise.
+ (gimple_call_return_flags): Likewise.
+ * tree-cfg.c (verify_gimple_call): Likewise.
+ (do_warn_unused_result): Likewise.
+ * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
+ * value-prof.c (gimple_ic_transform): Fix fndecl check.
+
+2011-04-08 Dmitry Melnik <dm@ispras.ru>
+
+ PR rtl-optimization/48235
+ * sel-sched.c (code_motion_process_successors): Recompute the last
+ insn in basic block if control flow changed.
+ (code_motion_path_driver): Ditto. Recompute the first insn as well.
+ Update condition for ilist_remove.
+
+2011-04-08 Alexander Monakov <amonakov@ispras.ru>
+
+ PR rtl-optimization/48302
+ * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
+ * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
+ it to record added preheader blocks.
+ * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
+ on to sel_add_loop_preheaders.
+ (sel_region_init): Move call to setup_current_loop_nest after
+ sel_init_bbs.
+
+2011-04-08 Alexander Monakov <amonakov@ispras.ru>
+
+ PR target/48273
+ * cfgloop.h (loop_has_exit_edges): New helper.
+ * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
+ non-clonable.
+ * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
+ that have no exit edges.
+
+2011-04-08 Alexander Monakov <amonakov@ispras.ru>
+
+ PR rtl-optimization/48442
+ * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
+ all callers. Adjust assert.
+
+2011-04-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/48377
+ * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
+ is_packed to true even for types with smaller TYPE_ALIGN than
+ TYPE_SIZE.
+
+2011-04-08 Richard Guenther <rguenther@suse.de>
+
+ PR bootstrap/48513
+ * doc/tm.texi: Re-generate.
+
+2011-04-08 Wei Guozhi <carrot@google.com>
+
+ PR target/47855
+ * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
+ * config/arm/arm.c (arm_attr_length_push_multi): New function.
+ * config/arm/arm.md (*push_multi): Change the length computation to
+ call a C function.
+
+2011-04-08 Anatoly Sokolov <aesok@post.ru>
+
+ * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
+ (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
+ * doc/tm.texi: Regenerate.
+ * system.h (ASM_OUTPUT_BSS): Poison.
+ * varasm.c (asm_output_bss): Remove function.
+ (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
+
+ * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
+ * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
+ * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
+ * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
+ Likewise.
+ * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
+ Likewise.
+ * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
+ Likewise.
+ * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
+
+2011-04-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
+ EnumValue lines.
+
+2011-04-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_handle_option): Don't handle
+ OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
+ OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
+ OPT_mcpu32.
+ * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
+ handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
+ -m68030, -m68040, -m68060, -mcpu32 and -m68332.
+ * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
+ m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
+ * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
+ (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
+ (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
+ options. Don't map other m68k options manually. Don't handle
+ old-style options as canonical.
+ (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
+ * doc/install.texi (m68k-*-*): Document binutils version requirement.
+
+2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * basic-block.h (force_nonfallthru): Move to...
+ * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
+ (force_nonfallthru): ...here.
+ * cfghooks.c (force_nonfallthru): New function.
+ * cfgrtl.c (force_nonfallthru): Rename into...
+ (rtl_force_nonfallthru): ...this.
+ (commit_one_edge_insertion): Do not set AUX field.
+ (commit_edge_insertions): Do not discover new basic blocks.
+ (rtl_cfg_hooks): Add rtl_force_nonfallthru.
+ (cfg_layout_rtl_cfg_hooks): Likewise.
+ * function.c (thread_prologue_and_epilogue_insns): Remove bogus
+ ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
+ * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
+
+2011-04-07 Anatoly Sokolov <aesok@post.ru>
+
+ * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
+ Remove macros.
+
+2011-04-07 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md: Update copyright year.
+ (avxcvtvecmode): Remove.
+ (sse_movhlps): Merge with *avx_movhlps.
+ (sse_movlhps): Merge with *avx_movlhps.
+ (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
+ (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
+ (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
+ (sse_loadhps): Merge with *avx_loadhps.
+ (sse_storelps): Merge with *avx_storelps.
+ (sse_loadlps): Merge with *avx_loadlps.
+ (sse_movss): Merge with *avx_movss.
+ (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
+ (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
+ (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
+ (*vec_set<mode>_0_sse2): Split multi-unit alternative.
+ (vec_set<mode>_0): Ditto.
+ (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
+ (sse4_1_insertps): Merge with *avx_insertps.
+ (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
+ (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
+ (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
+ (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
+ (sse2_storehpd): Merge with *avx_storehpd.
+ (sse2_loadhpd): Merge with *avx_loadhpd.
+ (sse2_loadlpd): Merge with *avx_loadlpd.
+ (sse2_movsd): Merge with *avx_movsd.
+ (*vec_concatv2df): Merge with *vec_concatv2df.
+
+2011-04-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/48343
+ * combine.c (combine_instructions): Add last_combined_insn,
+ update it if insn is after it, pass it to all try_combine calls.
+ (try_combine): Add last_combined_insn parameter, pass it instead of
+ i3 to propagate_for_debug.
+
+2011-04-07 Nick Clifton <nickc@redhat.com>
+
+ * config/mn10300/mn10300.md (movqi_internal): Add alternatives
+ to handle MDR <-> data register transfers.
+ (movhi_internal): Likewise.
+
+2011-04-07 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
+ previous stack info.
+
+2011-04-07 Tom de Vries <tom@codesourcery.com>
+
+ PR target/43920
+ * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
+ flow_find_cross_jump. Swap variables to implement backward replacement.
+ (try_crossjump_bb): Add argument to try_crossjump_to_edge.
+
2011-04-07 Tom de Vries <tom@codesourcery.com>
PR target/43920
* cfgcleanup.c (walk_to_nondebug_insn): New function.
- (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1 and
- bb2.
- (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not src1
- or src2. Redirect edges to the last basic block. Update frequency and
- count on multiple basic blocks in case of fallthru.
+ (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
+ and bb2.
+ (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
+ src1 or src2. Redirect edges to the last basic block. Update
+ frequency and count on multiple basic blocks in case of fallthru.
2011-04-07 Tom de Vries <tom@codesourcery.com>
PR target/43920
* cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
function.
- (old_insns_match_p): Change return type. Replace return false/true with
- return dir_none/dir_both. Use can_replace_by.
- (flow_find_cross_jump): Add dir_p parameter. Init replacement direction
- from dir_p. Register replacement direction in dir, last_dir and
- afterlast_dir. Handle new return type of old_insns_match_p using
+ (old_insns_match_p): Change return type. Replace return false/true
+ with return dir_none/dir_both. Use can_replace_by.
+ (flow_find_cross_jump): Add dir_p parameter. Init replacement
+ direction from dir_p. Register replacement direction in dir, last_dir
+ and afterlast_dir. Handle new return type of old_insns_match_p using
merge_dir. Return replacement direction in dir_p.
(flow_find_head_matching_sequence, outgoing_edges_match): Handle new
return type of old_insns_match_p.
(cgraph_early_inlining): Re-structure.
(pass_early_inline): Require SSA form.
-2011-03-06 Andrew Stubbs <ams@codesourcery.com>
+2011-04-06 Andrew Stubbs <ams@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Mark Shinwell <shinwell@codesourcery.com>
2011-04-06 Tristan Gingold <gingold@adacore.com>
- * dbxout.c: (debug_nesting, symbol_queue, symbol_queue_index)
- (symbol_queue_size, DBXOUT_DECR_NESTING)
+ * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
+ symbol_queue_size, DBXOUT_DECR_NESTING,
(DBXOUT_DECR_NESTING_AND_RETURN): Also define
if XCOFF_DEBUGGING_INFO.
2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
- * config/arm/arm.md (define_constants for unspec): Replace with
- define_c_enum.
- (define_constants for unspecv): Replace with define_c_enum.
- * config/arm/neon.md (define_constants for unspec): Replace with
- define_c_enum.
+ * config/arm/arm.md (define_constants for unspec): Replace with
+ define_c_enum.
+ (define_constants for unspecv): Replace with define_c_enum.
+ * config/arm/neon.md (define_constants for unspec): Replace with
+ define_c_enum.
2011-04-04 Richard Henderson <rth@redhat.com>
2011-04-04 Joseph Myers <joseph@codesourcery.com>
* doc/options.texi (ToLower): Document.
- * opt-functions.awk (switch_bit_fields): Initialize cl_tolower
- field.
+ * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
* opts-common.c (decode_cmdline_option): Handle cl_tolower.
* opts.h (cl_option): Add cl_tolower field.
* config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=