From 40d7cd0fd78fe2004e2a53c4618c148339b02733 Mon Sep 17 00:00:00 2001 From: Jing Yu Date: Mon, 19 Dec 2011 16:56:54 -0800 Subject: Add gcc-4.6. Synced to @180989 Change-Id: Ie3676586e1d8e3c8cd9f07d022f450d05fa08439 svn://gcc.gnu.org/svn/gcc/branches/google/gcc-4_6-mobile --- gcc-4.6/gcc/ChangeLog | 6557 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6557 insertions(+) create mode 100644 gcc-4.6/gcc/ChangeLog (limited to 'gcc-4.6/gcc/ChangeLog') diff --git a/gcc-4.6/gcc/ChangeLog b/gcc-4.6/gcc/ChangeLog new file mode 100644 index 000000000..fbb22be69 --- /dev/null +++ b/gcc-4.6/gcc/ChangeLog @@ -0,0 +1,6557 @@ +2011-08-08 Martin Jambor + + PR middle-end/49923 + * tree-sra.c (access_precludes_ipa_sra_p): Also check access + memory alignment. + +2011-05-11 Satoru Takabayashi + Paul Pluzhnikov + + * gcc/doc/install.texi (Configuration): Document + --with-linker-hash-style. + * gcc/gcc.c (init_spec): Handle LINKER_HASH_STYLE. + * gcc/config.in: Add LINKER_HASH_STYLE. + * gcc/configure.ac: Add --with-linker-hash-style. + * gcc/configure: Regenerate. + +2011-07-18 Rainer Orth + + * config.gcc: Obsolete i[3456x]86-*-netware*. + +2011-07-17 John David Anglin + + PR target/49746 + Revert: + 2010-12-30 John David Anglin + + * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean + patterns. + +2011-07-17 Eric Botcazou + + PR middle-end/49732 + * tree.c (walk_tree_1) : Do not walk a pointed-to type. + +2011-07-16 Eric Botcazou + + PR tree-optimization/49725 + Backport from mainline + 2011-03-31 Eric Botcazou + + * tree-ssa-pre.c (create_component_ref_by_pieces_1) : Drop + a zero minimum index only if it is redundant. + +2011-07-15 John David Anglin + + PR target/49723 + * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT. + +2011-07-15 Ulrich Weigand + + Backport from mainline: + 2011-07-13 Ulrich Weigand + + * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define. + (asm_file_start): Remove. + (spu_machine_dependent_reorg): Call compute_bb_for_insn and + free_bb_for_insn around code that modifies insns before + restarting df analysis. + +2011-07-15 Rainer Orth + + Backport from mainline: + 2011-07-13 Rainer Orth + + PR target/49541 + * config/sol2.h (LIB_SPEC): Simplify. + Move LIB_THREAD_LDFLAGS_SPEC ... + (LINK_SPEC): ... here. + +2011-07-14 James Greenhalgh + + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP. + +2011-07-14 Andrew Pinski + + PR tree-opt/49309 + * tree-mudflap.c (mf_xform_derefs_1 ): + Use fold_build2_loc instead of build2. + Use the correct type for the new tree. + +2011-07-14 Georg-Johann Lay + + PR target/49487 + Backport from mainline r176276 + 2011-07-14 Georg-Johann Lay + * config/avr/avr.md (rotl3): Generate SCRATCH instead + of REG. + (*rotw): Use const_int_operand for operand2. + Use match_scatch for operand3. + (*rotb): Ditto + * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH. + +2011-07-14 Richard Guenther + + PR tree-optimization/49651 + * tree-ssa-structalias.c (get_constraint_for_1): Properly + handle dereferences with subvariables. + +2011-07-11 Martin Jambor + + PR tree-optimization/49094 + * tree-sra.c (tree_non_mode_aligned_mem_p): New function. + (build_accesses_from_assign): Use it. + +2011-07-11 Georg-Johann Lay + + PR target/39633 + Backport from mainline r176141 + 2011-07-11 Georg-Johann Lay + * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only + offsets 1..5 set cc0 in a usable way. + +2011-07-08 Jakub Jelinek + + PR target/49621 + * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use + CONST0_RTX (dest_mode) instead of const0_rtx as second operand + of NE. + * config/rs6000/vector.md (vector_select_, + vector_select__uns): Change second operand of NE to + CONST0_RTX (mode) instead of const0_rtx. + * config/rs6000/altivec.md (*altivec_vsel, + *altivec_vsel_uns): Expect second operand of NE to be + zero_constant of the corresponding vector mode. + * config/rs6000/vsx.md (*vsx_xxsel, *vsx_xxsel_uns): + Likewise. + +2011-07-08 Georg-Johann Lay + + PR target/46779 + Backport from mainline SVN 176053. + 2011-07-08 Georg-Johann Lay + * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite. + In particular, allow 8-bit values in r28 and r29. + (avr_hard_regno_scratch_ok): Disallow any register that might be + part of the frame pointer. + (avr_hard_regno_rename_ok): Same. + (avr_legitimate_address_p): Don't allow SUBREGs. + +2011-07-07 Eric Botcazou + + PR target/49660 + * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add + MASK_V8PLUS, remove commented out flag and reorder. + + Backport from mainline + 2011-06-28 Rainer Orth + + * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove. + (TARGET_64BIT_DEFAULT): Define. + * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front + of tm_file. + * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define. + +2011-07-07 Jakub Jelinek + + PR c/49644 + * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with + one non-complex and one complex argument, call c_save_expr on both + operands. + + PR debug/49522 + * df-problems.c (dead_debug_reset): Remove dead_debug_uses + referencing debug insns that have been reset. + (dead_debug_insert_before): Don't assert reg is non-NULL, + instead return immediately if it is NULL. + + PR middle-end/49640 + * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF + operands and last COMPONENT_REF operand call gimplify_expr on it + if non-NULL. + +2011-07-06 Ramana Radhakrishnan + + Backport from mainline. + 2011-06-24 Ramana Radhakrishnan + + PR target/49335 + * config/arm/predicates.md (add_operator): New. + * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage + in Thumb2. + +2011-07-05 Jakub Jelinek + + PR tree-optimization/49618 + * tree-eh.c (tree_could_trap_p) : + For DECL_WEAK decls return true. + +2011-07-04 Jakub Jelinek + + PR rtl-optimization/49619 + * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification + pass VOIDmode as op0_mode to recursive call. + + PR rtl-optimization/49472 + * simplify-rtx.c (simplify_unary_operation_1) : When + negating MULT, negate the second operand instead of first. + (simplify_binary_operation_1) : If one operand is + a NEG and the other is MULT, don't attempt to optimize by + negation of the MULT operand if it only moves the NEG operation + around. + + Backported from mainline + 2011-06-06 Jakub Jelinek + + PR debug/49262 + * dwarf2out.c (native_encode_initializer): Decrement count in each + iteration. + +2011-07-04 Georg-Johann Lay + + Backport from mainline + 2011-07-04 Georg-Johann Lay + + PR target/44643 + * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY + instead of TREE_READONLY. + +2011-07-04 Richard Guenther + + PR tree-optimization/49615 + * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix + basic-block index check. + +2011-06-30 Eric Botcazou + + PR tree-optimization/49572 + * tree-ssa-dom.c (initialize_hash_element) : Use the + type of the RHS instead of that of the LHS for the expression type. + +2011-06-30 Georg-Johann Lay + + Backport from mainline + PR target/34734 + (avr_section_type_flags): For data in ".progmem.data", remove + section flag SECTION_WRITE. + +2011-06-30 Georg-Johann Lay + + Backport from mainline + PR target/34734 + * config/avr/avr.c (avr_handle_progmem_attribute): Move warning + about uninitialized data attributed 'progmem' from here... + (avr_encode_section_info): ...to this new function. + (TARGET_ENCODE_SECTION_INFO): New define. + +2011-06-29 Changpeng Fang + + Backport from mainline + 2011-06-29 Changpeng Fang + + * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask + option. + * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL + entry. + (TARGET_AVX128_OPTIMAL): New definition. + * config/i386/i386.c (initial_ix86_tune_features): Initialize + X86_TUNE_AVX128_OPTIMAL entry. + (ix86_option_override_internal): Enable the generation + of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set. + (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128. + (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128. + +2011-06-29 Harsha Jagasia + + Backport from mainline + 2011-05-31 Alexandre Oliva + + * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA. + * config/i386/sse.md: Add n to negated FMA pattern names. + +2011-06-29 Eric Botcazou + + PR tree-optimization/49539 + * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA + names by means of stmt_references_abnormal_ssa_name. + (associate_plusminus): Call can_propagate_from before propagating + from definition statements. + +2011-06-29 Martin Jambor + + Backport from mainline + 2011-06-24 Martin Jambor + + PR tree-optimizations/49516 + * tree-sra.c (sra_modify_assign): Choose the safe path for + aggregate copies if we also did scalar replacements. + +2011-06-28 Changpeng Fang + + Backport from mainline + 2011-06-20 Changpeng Fang + + PR target/49089 + * config/i386/i386.c (avx256_split_unaligned_load): New definition. + (avx256_split_unaligned_store): New definition. + (ix86_option_override_internal): Enable avx256 unaligned load/store + splitting only when avx256_split_unaligned_load/store is set. + +2011-06-28 Changpeng Fang + + Backport from mainline + 2011-03-28 H.J. Lu + + * config/i386/i386.c (flag_opts): Fix a typo in + -mavx256-split-unaligned-store. + +2011-06-28 Changpeng Fang + + Backport from mainline + 2011-03-27 H.J. Lu + + * config/i386/sse.md (*avx_mov_internal): Don't assert + unaligned 256bit load/store. + (*avx_movu): Likewise. + (*avx_movdqu): Likewise. + +2011-06-28 Changpeng Fang + + Backport from mainline + 2011-03-27 H.J. Lu + + * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load + and -mavx256-split-unaligned-store. + (ix86_option_override_internal): Split 32-byte AVX unaligned + load/store by default. + (ix86_avx256_split_vector_move_misalign): New. + (ix86_expand_vector_move_misalign): Use it. + + * config/i386/i386.opt: Add -mavx256-split-unaligned-load and + -mavx256-split-unaligned-store. + + * config/i386/sse.md (*avx_mov_internal): Verify unaligned + 256bit load/store. Generate unaligned store on misaligned memory + operand. + (*avx_movu): Verify unaligned + 256bit load/store. + (*avx_movdqu): Likewise. + + * doc/invoke.texi: Document -mavx256-split-unaligned-load and + -mavx256-split-unaligned-store. + +2011-06-28 Eric Botcazou + + * tree-ssa-dom.c (initialize_hash_element): Fix oversight. + +2011-06-28 Andrey Belevantsev + + Backport from mainline + 2011-05-25 Andrey Belevantsev + + PR rtl-optimization/49014 + * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi. + +2011-06-28 Alexander Monakov + + Backport from mainline + 2011-04-08 Alexander Monakov + + 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-06-28 Iain Sandoe + + PR target/47997 + * config/darwin.c (darwin_mergeable_string_section): Place string + constants in '.cstring' rather than '.const' when CF/NSStrings are + active. + +2011-06-27 Eric Botcazou + + * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the + forward scan as well. + +2011-06-27 Jakub Jelinek + + * BASE-VER: Set to 4.6.2. + * DEV-PHASE: Set to prerelease. + +2011-06-27 Release Manager + + * GCC 4.6.1 released. + +2011-06-21 Alan Modra + + * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New func. + (TARGET_CANNOT_FORCE_CONST_MEM): Update definition. + +2011-06-20 Ramana Radhakrishnan + + Backport from mainline. + 2011-06-13 Ramana Radhakrishnan + + PR target/48454 + * config/arm/neon.md (vec_pack_trunc): Set the lengths + correctly for the case with Quad vectors. + +2011-06-20 Alan Modra + + * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part + of toc-relative address in CONST. + (rs6000_delegitimize_address): Recognize changed address. + (rs6000_legitimize_reload_address): Likewise. + (rs6000_emit_move): Don't force these constants to memory. + * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of + toc-relative address in CONST. + (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise. + (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise. + +2011-06-18 Jakub Jelinek + + PR target/49411 + * config/i386/i386.c (ix86_expand_multi_arg_builtins): If + last_arg_constant and last argument doesn't match its predicate, + for xop_vpermil23 error out and for xop_rotl3 + if it is CONST_INT, mask it, otherwise expand using rotl3. + (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix + spelling of error message. + * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi, + vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use + const_0_to_255_operand instead of const_int_operand. + +2011-06-17 Richard Henderson + + Backport from mainline + 2011-03-22 Richard Henderson + + * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec. + +2011-06-17 Richard Guenther + + Backport from mainline + 2011-05-23 Richard Guenther + + PR tree-optimization/49115 + * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment + is not necessarily carried out, do not claim it kills the ref. + * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. + +2011-06-17 Hans-Peter Nilsson + + Backport from mainline + 2011-06-17 Hans-Peter Nilsson + + PR rtl-optimization/48542 + * reload.c (find_equiv_reg): Stop looking when finding a + setjmp-type call. + * reload1.c (reload_as_needed): Invalidate all reload + registers when crossing a setjmp-type call. + +2011-06-16 Kaz Kojima + + Backport form main line + 2011-06-09 Kaz Kojima + + PR target/49307 + * config/sh/sh.md (UNSPEC_CHKADD): New. + (chk_guard_add): New define_insn_and_split. + (symGOT_load): Use chk_guard_add instead of blockage. + +2011-06-16 Martin Jambor + + Backported from mainline + 2011-06-15 Martin Jambor + + PR tree-optimization/48613 + * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if + ipa_node_params_vector is NULL. + +2011-06-16 Jakub Jelinek + + PR tree-optimization/49419 + * tree-vrp.c (execute_vrp): Call init_range_assertions + before estimate_numbers_of_iterations, call + free_number_of_iterations_estimates before calling + remove_range_assertions. + + Backported from mainline + 2011-06-13 Edmar Wienskoski + + PR target/44618 + * config/rs6000/rs6000.md (save_gpregs_): Replaced pattern + with a set of similar patterns, where the MATCH_OPERAND for the + function argument is replaced with individual references to hardware + registers. + (save_fpregs_): Ditto + (restore_gpregs_): Ditto + (return_and_restore_gpregs_): Ditto + (return_and_restore_fpregs_): Ditto + (return_and_restore_fpregs_aix_): Ditto + +2011-06-14 Richard Henderson + + PR debug/48459 + * dwarf2out.c (frame_pointer_fb_offset_valid): New. + (based_loc_descr): Assert it's true. + (compute_frame_pointer_to_fb_displacement): Set it, + rather than aborting immediately. + +2011-06-14 Richard Henderson + + Backport from mainline + 2011-03-22 Richard Henderson + + * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New. + (avr_incoming_return_addr_rtx): New. + (emit_push_byte): New. + (expand_prologue): Use it. Remove incorrect dwarf annotation for + SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf + annotation for __prologue_saves__. Fixup dwarf annotation for CFA. + (emit_pop_byte): New. + (expand_epilogue): Use it. Pop frame pointer by bytes. + * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove. + (INCOMING_RETURN_ADDR_RTX): New. + (INCOMING_FRAME_SP_OFFSET): New. + (ARG_POINTER_CFA_OFFSET): New. + * config/avr/avr.md (*pushqi): Fix mode of auto-inc. + (*pushhi, *pushsi, *pushsf, popqi): Likewise. + (pophi): Remove. + +2011-06-14 Jakub Jelinek + + PR fortran/49103 + * tree.h (DECL_NONSHAREABLE): Define. + (struct tree_decl_common): Change decl_common_unused to + decl_nonshareable_flag. + * cfgexpand.c (expand_used_vars_for_block, clear_tree_used): + Ignore vars with DECL_NONSHAREABLE bit set. + * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE + on stores to automatic aggregate vars. + + PR rtl-optimization/49390 + Revert: + 2010-06-29 Bernd Schmidt + + * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare + MEM_ALIAS_SET. + +2011-06-11 Uros Bizjak + + * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register. + (*vec_dupv2df): Rename from vec_dupv2df. + (vec_dupv2df): New expander. + +2011-06-09 Eric Botcazou + + * config/sparc/sparc.md (return_internal): Adjust 'length' attribute. + +2011-06-08 H.J. Lu + + Backport from mainline + 2011-06-08 H.J. Lu + + * config/i386/driver-i386.c (host_detect_local_cpu): Support + unknown Intel family 0x6 CPUs. + +2011-06-08 Kaz Kojima + + Backport from mainline + 2011-06-01 Kaz Kojima + + PR target/49238 + * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if + needed when original operands are used for msw_skip comparison. + +2011-06-07 Jakub Jelinek + + PR gcov-profile/49299 + * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge. + +2011-06-06 Pat Haugen + + Backport from mainline + 2011-05-31 Pat Haugen + + * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from + NON_FLOAT_REGS. + +2011-06-06 Jakub Jelinek + + PR c++/49264 + * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs + if stmt folded into nothing. + * tree-inline.c (fold_marked_statements): If a builtin at the + end of a bb folded into nothing, just update cgraph edges + and move to next bb. + * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt + to be NULL. Don't compute count and frequency if new_call is NULL. + +2011-06-06 Andreas Krebbel + + * longlong.h (smul_ppmm): The resulting register pair contains the + higher order word first. + +2011-06-06 Mikael Pettersson + + PR tree-optimization/49243 + * calls.c (setjmp_call_p): Also check if fndecl has the + returns_twice attribute. + +2011-06-06 Richard Guenther + + PR tree-optimization/48702 + * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs + only when we know the base address is within bounds. + * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not + assume the base address of TARGET_MEM_REFs is in bounds. + (indirect_refs_may_alias_p): Fix TARGET_MEM_REF without index tests. + + Backport from mainline + 2011-05-31 Jakub Jelinek + + PR rtl-optimization/49235 + * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx. + (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST. + +2011-06-05 Eric Botcazou + + * config/sparc/sparc.c (output_return): Fix thinko in the output of an + EH return when delayed branches are disabled. + +2011-06-05 Kaz Kojima + + Backport from mainline + 2011-05-30 Kaz Kojima + + PR target/49186 + * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high + part of the second operand is 0. + +2011-06-04 Alexandre Oliva + + PR debug/47590 + * target.def (delay_sched2, delay_vartrack): New. + * doc/tm.texi.in: Update. + * doc/tm.texi: Rebuild. + * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2. + * var-tracking.c (gate_handle_var_tracking): Likewise. + * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop. + (bfin_flag_var_tracking): Drop. + (output_file_start): Don't save and override flag_var_tracking. + (bfin_option_override): Ditto flag_schedule_insns_after_reload. + (bfin_reorg): Test original variables. + (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. + * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop. + (ia64_flag_var_tracking): Drop. + (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. + (ia64_file_start): Don't save and override flag_var_tracking. + (ia64_override_options_after_change): Ditto + flag_schedule_insns_after_reload. + (ia64_reorg): Test original variables. + * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop. + (picochip_flag_var_tracking): Drop. + (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. + (picochip_option_override): Don't save and override + flag_schedule_insns_after_reload. + (picochip_asm_file_start): Ditto flag_var_tracking. + (picochip_reorg): Test original variables. + * config/spu/spu.c (spu_flag_var_tracking): Drop. + (TARGET_DELAY_VARTRACK): Define. + (spu_var_tracking): New. + (spu_machine_dependent_reorg): Call it. + (asm_file_start): Don't save and override flag_var_tracking. + +2011-06-04 Ira Rosen + + PR tree-optimization/49038 + * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): + Ensure at least one epilogue iteration if required by data + accesses with gaps. + * tree-vectorizer.h (struct _loop_vec_info): Add new field + to mark loops that require peeling for gaps. + * tree-vect-loop.c (new_loop_vec_info): Initialize new field. + (vect_get_known_peeling_cost): Take peeling for gaps into + account. + (vect_transform_loop): Generate epilogue if required by data + access with gaps. + * tree-vect-data-refs.c (vect_analyze_group_access): Mark the + loop as requiring an epilogue if there are gaps in the end of + the strided group. + +2011-06-02 Ira Rosen + + PR tree-optimization/49093 + * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile + data references. + +2011-05-19 Quentin Neill + + * config/i386/sse.md (fma4_fmsubadd): Use . + (fma4_fmaddsub): Likewise + +2011-05-31 Richard Guenther + + Backport from mainline + 2011-05-19 Richard Guenther + + PR middle-end/48985 + * tree-object-size.c (addr_object_size): If the pointed-to + variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT. + +2011-05-31 Richard Guenther + + Backport from mainline + 2011-05-11 Richard Guenther + + PR middle-end/48953 + * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs. + +2011-05-30 Richard Guenther + + PR tree-optimization/49218 + * tree-vrp.c (adjust_range_with_scev): Properly check whether + overflow occured. + +2011-05-30 Georg-Johann Lay + + PR target/45263 + * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): + Don't use r20 around calls of __tablejump_elpm__ + +2011-05-29 Richard Sandiford + + PR target/43700 + * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global + registers. + +2011-05-29 Richard Sandiford + + PR target/43995 + * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a + recurse_p argument. Only follow register copies if it is set, + and prevent mips_find_pic_call_symbol from recursing. + (mips_find_pic_call_symbol): Add a recurse_p argument. + Pass it to mips_pic_call_symbol_from_set. + (mips_annotate_pic_calls): Update accordingly. + +2011-05-29 Richard Guenther + + PR tree-optimization/49217 + * ipa-pure-const.c (propagate_pure_const): Fix typos. + +2011-05-26 Pat Haugen + + * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR + moves expensive on Power7 also. + +2011-05-26 Georg-Johann Lay + + PR target/44643 + * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY + alone. Error if non-const data has attribute progmem. + +2011-05-26 Jakub Jelinek + + PR c++/49165 + * gimplify.c (shortcut_cond_r): Don't special case + COND_EXPRs if they have void type on one of their arms. + + PR tree-optimization/49161 + * tree-vrp.c (struct case_info): New type. + (compare_case_labels): Sort case_info structs instead of + trees, and not primarily by CASE_LABEL uids but by + label_for_block indexes. + (find_switch_asserts): Put case labels into struct case_info + array instead of TREE_VEC, adjust sorting, compare label_for_block + values instead of CASE_LABELs. + +2011-05-25 Jakub Jelinek + + PR target/49128 + * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. + +2011-05-18 Jan Hubicka + + PR tree-optimization/44897 + * ipa-inline.c (cgraph_decide_recursive_inlining): Do not divide + by zero for insane profiles. + +2011-05-24 Eric Botcazou + + * config/sparc/sparc.c (sparc_option_override): If not set by the user, + force flag_ira_share_save_slots to 0. + +2011-05-24 Uros Bizjak + + PR target/49133 + * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative. + +2011-05-24 H.J. Lu + + Backport from mainline + 2011-05-24 H.J. Lu + + PR target/49128 + * config/i386/driver-i386.c (host_detect_local_cpu): Always + add -mno-XXX. Handle FMA. + +2011-05-23 Jakub Jelinek + + PR lto/49123 + * fold-const.c (constant_boolean_node): If type is non-NULL, + use build_int_cst_type instead of build_int_cst. + + PR debug/49032 + * dbxout.c: Include cgraph.h. + (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written + and without value expr, return NULL if no varpool node exists for + it or if it is not needed. + * Makefile.in (dbxout.o): Depend on $(CGRAPH_H). + + PR c/49120 + * c-decl.c (start_decl): Convert expr to void_type_node. + + PR middle-end/48973 + * expr.c (expand_expr_real_2) : If do_store_flag + failed and the comparison has a single bit signed type, use + constm1_rtx instead of const1_rtx for true value. + (do_store_flag): If ops->type is single bit signed type, disable + signel bit test optimization and pass -1 instead of 1 as last + parameter to emit_store_flag_force. + +2011-05-22 Eric Botcazou + + * config.gcc (sparc-*-elf*): Add sparc/t-crtin. + (sparc-*-rtems*): Likewise. + (sparc64-*-elf*): Likewise. + (sparc64-*-rtems*): Likewise. + (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts. + * config/sparc/t-crtin: New file. + * config/sparc/t-sol2 (crti.o): Delete rule. + (crtn.o): Likewise. + * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete. + * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise. + * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o. + (ENDFILE_SPEC): Add crtn.o. + +2011-05-22 Uros Bizjak + + PR target/49104 + * config/i386/cpuid.h (bit_MMXEXT): New define. + +2011-05-22 Jakub Jelinek + + PR middle-end/49029 + * expmed.c (extract_fixed_bit_field): Test whether target can be used + only after deciding which mode to use. + +2011-05-21 Eric Botcazou + + * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard + frame pointer. + +2011-05-21 Eric Botcazou + + * config/sparc/sparc.c (eligible_for_return_delay): Do not return + false if there are call-saved registers here... + (sparc_can_use_return_insn_p): ...but here instead. + (save_or_restore_regs): Fix thinko. + (sparc_expand_prologue): Use current_function_is_leaf. + (sparc_frame_pointer_required): Likewise. + +2011-05-20 Jakub Jelinek + + PR bootstrap/49086 + * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL + for PHI args that are SSA_NAME_IS_DEFAULT_DEF. + +2011-05-20 Richard Guenther + + PR tree-optimization/49079 + * tree-dfa.c (get_ref_base_and_extent): Handle view-converting + MEM_REFs correctly for the trailing array access detection. + Special case constants the same way as decls for overall size + constraining. + +2011-05-20 Jakub Jelinek + + PR tree-optimization/49073 + * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return + NULL if PHI argument is SSA_NAME, whose def_stmt is dominated + by the PHI. + * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators. + +2011-05-19 Uros Bizjak + + * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE + when TARGET_RDRND is active. + (ix86_expand_builtin) : + Generate dummy SImode target register when target is NULL. + +2011-05-18 H.J. Lu + + Backport from mainline + 2011-05-18 H.J. Lu + + PR target/49002 + * config/i386/sse.md (avx__): + Properly handle load cast. + +2011-05-18 Jakub Jelinek + + PR tree-optimization/49039 + * tree-vrp.c (extract_range_from_binary_expr): For + MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]> + return ~[MAX_EXPR , MIN_EXPR ]. + +2011-05-18 Richard Guenther + + PR tree-optimization/49018 + * gimple.c (gimple_has_side_effects): Volatile asms have side-effects. + * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use + gimple_has_side_effects. + +2011-05-18 Richard Guenther + + Backport from mainline + 2011-04-19 Richard Guenther + + PR lto/48207 + * tree.c (free_lang_data): Do not reset the decl-assembler-name + langhook. + + 2011-04-21 Richard Guenther + + PR lto/48703 + * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of + DECL_NAME. + +2011-05-18 Richard Guenther + + Backport from mainline + 2011-05-12 Richard Guenther + + PR tree-optimization/48172 + * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude + the number of iterations from the segment size calculation. + (vect_create_cond_for_alias_checks): Adjust. + + 2011-05-13 Richard Guenther + + PR tree-optimization/48172 + * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid + multiplying by number of iterations for equal step. + (vect_create_cond_for_alias_checks): Likewise. + +2011-05-18 Jakub Jelinek + + PR tree-optimization/49000 + * tree-ssa.c (execute_update_addresses_taken): Call + maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't + be rewritten and decl has been marked for renaming, reset + the debug stmt. + +2011-05-17 Nick Clifton + + Import these patches from the mainline: + + 2011-05-17 Nick Clifton + + * config/rx/rx.c (rx_memory_move_cost): Include cost of register moves. + + * config/rx/rx.md: Add peephole to remove redundant extensions + after loads. + (bitset_in_memory): Use rx_restricted_mem_operand. + (bitinvert_in_memory): Likewise. + (bitclr_in_memory): Likewise. + + 2011-05-17 Kazuhio Inaoka + Nick Clifton + + * config/rx/rx.md: Add peepholes to match a register move followed + by a comparison of the moved register. Replace these with an + addition of zero that does both actions in one instruction. + +2011-05-17 Jakub Jelinek + + PR target/48986 + * config/i386/sync.md (sync_old_add): Relax operand 2 + predicate to allow CONST_INT. + +2011-05-16 Joseph Myers + + PR preprocessor/48677 + * cppspec.c (lang_specific_driver): Set new_decoded_options[0] + from decoded_options[0], not from itself. + +2011-05-16 Uros Bizjak + + * config/i386/i386.md (*movxf_internal): Disable CONST_DOUBLE + optimization for CM_MEDIUM and CM_LARGE code models. Fix usage + of standard_80387_constant_p. + (*movxf_internal_nointeger): Ditto. + (*movdf_internal): Remove dead code-size optimization. + (*movdf_internal_rex64): Fix usage of standard_80387_constant_p. + (*movdf_internal_nointeger): Ditto. + (*movsf_internal): Ditto. + (floating point move splitters): Ditto. + * config/i386/constraints.md (G): Ditto. + * config/i386/i386.c (ix86_preferred_reload_class): Ditto. + +2011-05-12 Jakub Jelinek + + PR tree-optimization/48975 + * tree-if-conv.c (combine_blocks): Call free_bb_predicate + on all bbs here and free and clear ifc_bbs at the end. + +2011-05-12 Richard Guenther + + Backport from mainline + 2011-05-02 Richard Guenther + + PR tree-optimization/48822 + * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice. + (process_scc): Indicate which iteration we start. + +2011-05-12 Jakub Jelinek + + PR debug/48967 + * var-tracking.c (use_narrower_mode_test) : Return 1 + if validate_subreg fails. + +2011-05-12 Nick Clifton + + * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo. + * config/rx/rx.c (rx_is_legitimate_constant): Use gcc_unreachable + instead of abort. + (rx_align_for_label): Test label before extracting its number of + uses. + (rx_max_skip_for_label): Ignore debug insns. + +2011-05-11 Jakub Jelinek + + PR debug/48159 + * tree-ssa.c (reset_debug_uses): New function. + * tree-flow.h (reset_debug_uses): New prototype. + * tree-data-ref.c (stmts_from_loop): Ignore debug stmts. + * tree-loop-distribution.c (generate_loops_for_partition): Call + reset_debug_uses on the stmts that will be removed. Keep around + all debug stmts, don't count them as bits in partition bitmap. + (generate_builtin): Don't count debug stmts or labels as bits in + partition bitmap. + +2011-05-10 Michael Meissner + + Backport from mainline + 2011-05-10 Michael Meissner + + PR target/48857, 48495 + * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete. + (VSX_MODE): Ditto. + (VSX_MOVE_MODE): Ditto. + (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and + VSX vector types. Add V2DImode. + (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of + ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls. + (MODES_TIEABLE_P): Ditto. + + * config/rs6000/rs6000.c (rs6000_emit_move): Use + ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and + VSX_VECTOR_MODE. + (init_cumulative_args): Ditto. + (rs6000_function_arg_boundary): Ditto. + (rs6000_function_arg_advance_1): Ditto. + (rs6000_function_arg): Ditto. + (rs6000_function_ok_for_sibcall): Ditto. + (emit_frame_save): Ditto. + (rs6000_function_value): Ditto. + (rs6000_libcall_value): Ditto. + +2011-05-10 Nick Clifton + + * config/rx/rx.c (rx_memory_move_cost): Reduce the cost for + stores. + +2011-05-10 DJ Delorie + + * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define. + (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label + * config/rx/rx.c (rx_align_for_label): Add label and + uses_threshold parameters. Do not align when the label is not + used enough. + * config/rx/rx-protos.h (rx_align_for_label): Update prototype. + +2011-05-10 Jakub Jelinek + + Backported from mainline + 2011-05-07 Zdenek Dvorak + + PR tree-optimization/48837 + * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls + when accumulator transformation is performed. + +2011-05-10 Jakub Jelinek + + PR tree-optimization/48611 + PR tree-optimization/48794 + * tree-eh.c (remove_unreachable_handlers): Don't remove regions + referenced from RESX or EH_DISPATCH arguments. + +2011-05-09 Andreas Krebbel + + * config/s390/s390.md (TD/TF mem to reg move splitter): Make the + temporary register to match Pmode. + +2011-05-09 Eric Botcazou + + * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko. + (dataflow_set_preserve_mem_locs): Likewise. + +2011-05-06 Uros Bizjak + + * config/i386/i386.md (*movdf_internal_nointeger): Apply "*" + constraint modifier to "r". + +2011-05-06 Alan Modra + + PR target/48900 + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use + const0_rtx as the arg to the dummy __tls_get_addr libcall. + +2011-05-06 Andreas Krebbel + + * config/s390/s390.c (s390_asm_trampoline_template): Comment + instruction sizes. + (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG. + +2011-05-06 Ramana Radhakrishnan + + PR target/48252 + * config/arm/neon.md (neon_vtrn): Fix typo from earlier commit. + +2011-05-05 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_handle_option): Add missing break + for OPT_mfpu_ case. + +2011-05-05 Jason Merrill + + PR c++/40975 + * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST. + +2011-05-05 Julian Brown + + * config/arm/neon.md (vec_set_internal): Fix misplaced + parenthesis in D-register case. + +2011-05-05 Ira Rosen + + Backport from mainline: + 2011-04-18 Ulrich Weigand + Ira Rosen + + PR target/48252 + * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments + to match neon_vzip/vuzp/vtrn_internal. + * config/arm/neon.md (neon_vtrn_internal): Make both + outputs explicitly dependent on both inputs. + (neon_vzip_internal, neon_vuzp_internal): Likewise. + +2011-05-04 Uros Bizjak + + * config/i386/i386.md (*movdi_internal_rex64) : + Use %v prefix in insn mnemonic to handle TARGET_AVX. + (*movdi_internal): Use "maybe_vex" instead of "vex" in "prefix" + attribute calculation. + (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute. + * config/i386/sse.md (*sse2_storeq_rex64): Do not emit %v prefix + for mov{q} mnemonic. + (*vec_extractv2di_1_rex64_avx): Ditto. + +2011-05-03 Uros Bizjak + Jakub Jelinek + + PR target/48774 + * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode + only succeed if req_mode is the same as set_mode. + +2011-05-03 Richard Guenther + + PR lto/48846 + * lto-streamer-in.c (unpack_ts_decl_common_value_fields): + Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN. + * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. + +2011-05-03 Eric Botcazou + + PR target/48723 + * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack + for -fstack-check if the size to allocate is negative. + +2011-04-30 Jakub Jelinek + + PR tree-optimization/48809 + * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned + type. + (gen_inbound_check): Don't compute index_expr - range_min in utype + again, instead reuse SSA_NAME initialized in build_arrays. + Remove two useless gsi_for_stmt calls. + +2011-04-28 Michael Meissner + + Backport from mainline + 2011-04-01 Andrew Pinski + Michael Meissner + + PR target/48262 + * config/rs6000/vector.md (movmisalign): Allow for memory + operands, as per the specifications. + + * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes. + (vec_extract_evenv4sf): Ditto. + (vec_extract_evenv8hi): Ditto. + (vec_extract_evenv16qi): Ditto. + (vec_extract_oddv4si): Ditto. + +2011-04-28 Jakub Jelinek + + PR middle-end/48597 + * final.c (final_scan_insn): Call dwarf2out_frame_debug even for + inline asm. + +2011-04-27 Jakub Jelinek + + PR c/48742 + * c-typeck.c (build_binary_op): Don't wrap arguments if + int_operands is true. + +2011-04-26 Jakub Jelinek + + PR debug/48768 + * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result + is error_mark_node, set value to NULL. + + PR tree-optimization/48734 + * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up + if return value from maybe_fold_*_comparsions isn't something + the code is prepared to handle. + +2011-04-26 Richard Guenther + + PR tree-optimization/48731 + * ipa-inline.c (cgraph_flatten): Test if function is inlinable. + +2011-04-24 Paolo Carlini + + PR other/48748 + * doc/extend.texi (Type Traits): Document __is_standard_layout, + __is_literal_type, and __is_trivial; update throughout about + possibly cv-qualified void types. + +2011-04-23 Jakub Jelinek + + PR c/48685 + * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting + to VOID_TYPE even around MODIFY_EXPR. + +2011-04-22 Jakub Jelinek + + PR tree-optimization/48717 + * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and + ~A + A optimizations use build_int_cst_type instead of build_int_cst. + +2011-04-22 Jakub Jelinek + + PR c/48716 + * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also + TREE_STATIC variables declared inside of some OpenMP construct. + +2011-04-21 Uros Bizjak + + PR target/48708 + * config/i386/i386.c (ix86_expand_vector_set) : Generate + vec_extract and vec_concat for non-SSE4_1 targets. + +2011-04-21 Richard Guenther + + PR middle-end/48695 + * tree-ssa-alias.c (aliasing_component_refs_p): Compute base + objects and types here. Adjust for their offset before comparing. + +2011-04-21 Eric Botcazou + + * gimple.c (walk_gimple_op) : Fix couple of oversights. + +2011-04-20 John David Anglin + + PR target/48288 + * config/pa/predicates.md (ior_operand): Delete predicate. + (cint_ior_operand, reg_or_cint_ior_operand): New predicates. + * config/pa/pa.md (iordi3): Use reg_or_cint_ior_operand predicate in + expander. Use cint_ior_operand in unnamed insn. + (iorsi3): Likewise. + * config/pa/pa-protos.h (ior_operand): Delete declarations. + +2011-04-20 Jakub Jelinek + + PR tree-optimization/48611 + * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate + beyond ERT_MUST_NOT_THROW region. + +2011-04-20 Eric Botcazou + + Backport from mainline + 2011-04-19 Eric Botcazou + + PR lto/48148 + * gimple.c (gimple_types_compatible_p_1) : Do not merge + the types if they have different enumeration identifiers. + + 2011-04-18 Eric Botcazou + + PR lto/48492 + * cfgexpand.c (expand_debug_expr) : Return NULL for a + DECL_IN_CONSTANT_POOL without RTL. + +2011-04-20 Richard Guenther + + Backport from mainline + 2011-04-19 Bernd Schmidt + + PR fortran/47976 + * reload1.c (inc_for_reload): Return void. All callers changed. + (emit_input_reload_insns): Don't try to delete previous output + reloads to a register, or record spill_reg_store for autoincs. + +2011-04-19 Jakub Jelinek + + PR target/48678 + * config/i386/i386.md (movstrict): FAIL if operands[0] + is a SUBREG with non-MODE_INT mode inside of it. + +2011-04-18 Jakub Jelinek + + PR middle-end/48661 + * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL + if TREE_TYPE (v) is non-NULL. + + * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from + gimple_get_virt_mehtod_for_binfo. + * gimple.h (gimple_get_virt_method_for_binfo): Likewise. + * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust + callers. + * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. + +2011-04-18 Eric Botcazou + + * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype. + +2011-04-18 Jakub Jelinek + + PR tree-optimization/48616 + * tree-vect-stmts.c (vectorizable_shift): If SLP, determine + whether the shift is by scalar or vector based on whether all SLP + scalar stmts have the same rhs. + +2011-04-17 Dennis, CHENG Renquan + + * doc/passes.texi: Fill crossref nodes. + +2011-04-17 Marius Strobl + + * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with... + (FBSD_TARGET_CPU_CPP_BUILTINS): ...this. + (TARGET_GNU_TLS, TARGET_SUN_TLS): Define. + +2011-04-17 Eric Botcazou + + PR lto/48538 + * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data + is non-null before accessing it. + (input_cgraph): Remove trailing spaces. + +2011-04-15 Andreas Krebbel + + * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2): + Replace match_operand with match_dup for the third operand in + these expanders. + +2011-04-15 Jakub Jelinek + + PR target/48605 + * config/i386/sse.md (avx_insertps, sse4_1_insertps): If operands[2] + is a MEM, offset it as needed based on top 2 bits in operands[3], + change MEM mode to SFmode and mask those 2 bits away from operands[3]. + +2011-04-13 John David Anglin + + Backport from mainline: + 2011-04-08 John David Anglin + + 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-13 Jakub Jelinek + + 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 Ramana Radhakrishnan + + Backport from mainline: + 2011-04-12 Ramana Radhakrishnan + PR target/48090 + * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints. + +2011-04-12 Martin Jambor + + 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-12 Jakub Jelinek + + 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 Nick Clifton + + * 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 + + PR c/48517 + * c-typeck.c (store_init_value): Set TREE_TYPE (decl) to + qualified type. + +2011-04-11 Joseph Myers + + * common.opt (Tbss=, Tdata=, Ttext=): New options. + +2011-04-11 Rainer Orth + + Backport from mainline: + 2011-04-06 Rainer Orth + + * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define. + +2011-04-09 Duncan Sands + + * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set. + +2011-04-08 Steven G. Kargl + + PR target/47829 + * config.gcc: disable unwind table generation for crtbegin/crtend + on i386-*-freebsd. + +2011-04-08 Jakub Jelinek + + 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-07 Uros Bizjak + + * config/i386/sse.md: Update copyright year. + (avx_cmp3): Add missing output + register constraint. + (*vec_concatv2sf_avx): Fix wrong register constraint in + alternative 3 of operand 1. + (*vec_set_0_avx): Avoid combining registers from different + units in a single alternative. + (*vec_set_0_sse4_1): Ditto. + (*vec_set_0_sse2): Ditto. + (vec_set_0): Ditto. + (sse2_storehpd): Ditto. + (sse2_loadhpd): Ditto. + (sse4_1_insertps): Use nonimmediate_operand for operand 2. + * config/i386/predicates.md (sse_comparison_operator): Do not + define as special predicate. + +2011-04-07 Jakub Jelinek + + 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 Andrey Belevantsev + + Backport from mainline + 2011-03-26 Andrey Belevantsev + + PR rtl-optimization/48144 + * sel-sched-ir.c (merge_history_vect): Factor out from ... + (merge_expr_data): ... here. + (av_set_intersect): Rename to av_set_code_motion_filter. + Update all callers. Call merge_history_vect when an + expression is found in both sets. + * sel-sched-ir.h (av_set_code_motion_filter): Add prototype. + +2011-04-06 Jakub Jelinek + + PR debug/48466 + * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use + as base_reg whatever register reg has been eliminated to, instead + of hardcoding STACK_POINTER_REGNUM. + + Backported from mainline + 2011-04-01 Jakub Jelinek + + PR middle-end/48335 + * expr.c (expand_assignment): Handle all possibilities + if TO_RTX is CONCAT. + * expmed.c (store_bit_field_1): Avoid trying to create + invalid SUBREGs. + (store_split_bit_field): If SUBREG_REG (op0) or + op0 itself has smaller mode than word, return it + for offset 0 and const0_rtx for out-of-bounds stores. + If word is const0_rtx, skip it. + +2011-04-06 Joseph Myers + + * gcov-io.c: Use GCC Runtime Library Exception. + +2011-04-05 Eric Botcazou + + * stor-layout.c (self_referential_size): Fix 2010-07-13 commit. + +2011-04-01 Ulrich Weigand + + * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>. + +2011-04-01 Andrey Belevantsev + + Backport from mainline + 2011-03-22 Andrey Belevantsev + + PR rtl-optimization/48143 + * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute. + (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps, + sse2_cvtps2pd): Likewise. + +2011-03-31 Eric Botcazou + + PR target/48142 + * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate + frame-related from frame-unrelated adjustments to the stack pointer. + +2011-03-30 H.J. Lu + + Backport from mainline + 2011-03-30 H.J. Lu + + PR target/48349 + * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in + FLOAT_SSE_REGS. + +2011-03-29 Jakub Jelinek + + PR debug/48253 + * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label, + dw_fde_hot_section_end_label, dw_fde_unlikely_section_label, + dw_fde_unlikely_section_end_label, cold_in_std_section, + dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields. + Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section + fields. + (output_fde): Use dw_fde_second_{begin,end} if second is + true, otherwise dw_fde_{begin,end}. + (output_call_frame_info): Test dw_fde_second_begin != NULL + instead of dw_fde_switched_sections. + (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct + fields, initialize new fields. Initialize in_std_section + unconditionally from the first partition. + (dwarf2out_end_epilogue): Don't override dw_fde_end when + dw_fde_second_begin is non-NULL. + (dwarf2out_switch_text_section): Stop initializing removed + dw_fde_struct fields, initialize new fields, initialize + also dw_fde_end here. Set dw_fde_switch_cfi even when + dwarf2out_do_cfi_asm (). Call var_location_switch_text_section. + (struct var_loc_list_def): Add last_before_switch field. + (arange_table, arange_table_allocated, arange_table_in_use, + ARANGE_TABLE_INCREMENT, add_arange): Removed. + (size_of_aranges): Count !in_std_section and !second_in_std_section + hunks in fdes, instead of looking at arange_table_in_use. + (output_aranges): Add aranges_length argument, don't call + size_of_aranges here. Instead of using aranges_table* + emit ranges for fdes when !in_std_section resp. + !second_in_std_section. + (dw_loc_list): Break ranges crossing section switch. + (convert_cfa_to_fb_loc_list): Likewise. If switched sections, + use dw_fde_second_end instead of dw_fde_end as end of last + range. + (gen_subprogram_die): Don't call add_arange. Use + dw_fde_{begin,end} for first partition and if switched + section dw_fde_second_{begin,end} for the second. + (var_location_switch_text_section_1, + var_location_switch_text_section): New functions. + (dwarf2out_begin_function): Initialize cold_text_section even + when function_section () isn't text_section. + (prune_unused_types): Don't walk arange_table. + (dwarf2out_finish): Don't needlessly test + flag_reorder_blocks_and_partition when testing cold_text_section_used. + If info_section_emitted, call size_of_aranges and if it indicates + non-empty .debug_aranges, call output_aranges with the computed + size. Stop using removed dw_fde_struct fields, use + dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end} + for second. + +2011-03-29 Uros Bizjak + + * config/alpha/alpha.c (alpha_sr_alias_set): Don't define. + (alpha_option_override): Don't set alpha_sr_alias_set. + (emit_frame_store_1): Use gen_frame_mem rather than calling + set_mem_alias_set. + (alpha_expand_epilogue): Ditto. + (unicosmk_gen_dsib): Ditto. + +2011-03-29 Nick Clifton + + * config/rx/rx.h (LABEL_ALIGN_AFTER_BARRIER): Define. + (ASM_OUTPUT_MAX_SKIP): Define. + * config/rx/predicates.md (rx_zs_comparison_operator): Do not + allow LT aor GE comparisons. + * config/rx/rx-protos.h (rx_align_for_label): Prototype. + * config/rx/rx.md: Add peepholes and patterns to combine extending + loads with simple arithmetic instructions. + * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI modes + to use pre-decrement and post-increment addressing. + (rx_is_restricted_memory_address): For REG+INT addressing, ensure + that the INT is a valid offset. + (rx_print_operand): Handle %R. + Fix %Q's handling of MEMs. + (rx_option_override): Set alignments. + (rx_align_for_label): New function. + (rx_max_skip_for_label): New function. + (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. + +2011-03-29 Andreas Krebbel + + * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS + for invalid symbolic addresses. + (s390_secondary_reload): Don't use s390_check_symref_alignment for + larl operands. + +2011-03-28 Richard Sandiford + + PR target/47553 + * config/arm/predicates.md (neon_lane_number): Accept 0..15. + +2011-03-28 Richard Guenther + + Backport from mainline + 2011-03-24 Richard Guenther + + PR middle-end/48269 + * tree-object-size.c (addr_object_size): Do not double-account + for MEM_REF offsets. + + 2011-03-22 Richard Guenther + + PR tree-optimization/48228 + * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating + for single-arg PHIs. + + 2011-03-17 Richard Guenther + + PR middle-end/48134 + * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated + a value make sure to fold the statement. + + 2011-03-15 Richard Guenther + + PR middle-end/48031 + * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized + or variable-indexed array accesses when in gimple form. + +2011-03-27 Jonathan Wakely + + PR other/48179 + PR other/48221 + PR other/48234 + * doc/extend.texi (Alignment): Move section to match order in TOC. + * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise. + (Warning Options): Adjust -Wno-cpp summary and remove stray backslash. + +2011-03-26 Uros Bizjak + + Backport from mainline: + 2011-03-24 Uros Bizjak + + PR target/48237 + * config/i386/i386.md (*movdf_internal_rex64): Do not split + alternatives that can be handled with movq or movabsq insn. + (*movdf_internal): Disable for !TARGET_64BIT. + (*movdf_internal_nointeger): Ditto. + * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates. + +2011-03-26 Jakub Jelinek + + Backport from mainline + 2011-03-24 Jakub Jelinek + + PR debug/48204 + * simplify-rtx.c (simplify_const_unary_operation): Call + real_convert when changing mode class with FLOAT_EXTEND. + + 2011-03-20 Jakub Jelinek + + PR c/42544 + PR c/48197 + * c-common.c (shorten_compare): If primopN is first sign-extended + to opN and then zero-extended to result type, set primopN to opN. + + PR rtl-optimization/48156 + * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL, + assume df and df_lr are not NULL. + + 2011-03-17 Jakub Jelinek + + PR rtl-optimization/48141 + * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New. + * dse.c: Include params.h. + (active_local_stores_len): New variable. + (add_wild_read, dse_step1): Clear it when setting active_local_stores + to NULL. + (record_store, check_mem_read_rtx): Decrease it when removing + from the chain. + (scan_insn): Likewise. Increase it when adding to chain, if it + reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and + set active_local_stores to NULL before the addition. + * Makefile.in (dse.o): Depend on $(PARAMS_H). + + PR rtl-optimization/48141 + * dse.c (record_store): If no positions are needed in an insn + that cannot be deleted, at least unchain it from active_local_stores. + +2011-03-25 Jakub Jelinek + + * BASE-VER: Set to 4.6.1. + * DEV-PHASE: Set to prerelease. + +2011-03-25 Release Manager + + * GCC 4.6.0 released. + +2011-03-21 Andreas Tobler + + * config/rs6000/t-freebsd: Remove duplication from file. + +2011-03-21 Rainer Orth + + PR bootstrap/48135 + * doc/install.texi (Prerequisites): Move jar etc. up. + Explain support library version requirements. + +2011-03-21 Rainer Orth + + PR bootstrap/48135 + * doc/install.texi (Prerequisites): Move Perl to build + requirements. Always necessary on Solaris 2 with Sun ld. + +2011-03-21 Rainer Orth + + * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for + binutils 2.21. + (Specific, i?86-*-solaris2.[89]): Likewise. + (Specific, i?86-*-solaris2.10): Likewise. + (Specific, mips-sgi-irix6): Likewise. + (Specific, *-*-solaris2*): Remove Sun Studio download URL. + Update for binutils 2.21. + +2011-03-21 Jakub Jelinek + + PR target/48213 + * config/s390/s390.c (s390_delegitimize_address): Don't call + lowpart_subreg if orig_x has BLKmode. + +2011-03-20 Joseph Myers + + * c-decl.c (diagnose_mismatched_decls): Give an error for + redefining a typedef with variably modified type. + +2011-03-20 Joseph Myers + + * c-decl.c (grokfield): Don't allow typedefs for structures or + unions with no tag by default. + * doc/extend.texi (Unnamed Fields): Update. + +2011-03-18 Jakub Jelinek + + PR debug/48176 + * dwarf2out.c (dwarf2out_finish): Call output_aranges even when + arange_table_in_use is 0, but either text_section_used or + cold_text_section_used is true. Don't call it if + !info_section_emitted. + +2011-03-18 Richard Guenther + + * doc/install.texi (--enable-gold): Remove. + (--with-plugin-ld): Document. + * doc/invoke.texi (-fuse-linker-plugin): Clarify. + +2011-03-18 H.J. Lu + + Backport from mainline + 2011-03-17 H.J. Lu + + PR target/48171 + * config/i386/i386.opt: Add Save to -mavx and -mfma. + +2011-03-18 Richard Henderson + Jakub Jelinek + + PR bootstrap/48161 + * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary + instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER. + +2011-03-17 Richard Guenther + + PR middle-end/48165 + * tree-object-size.c (compute_object_offset): Properly return + the offset operand of MEM_REFs as sizetype. + +2011-03-16 Dodji Seketeli + + PR debug/47510 + * dwarf2out.c (strip_naming_typedef): Factorize out of ... + (lookup_type_die_strip_naming_typedef): ... here. + (get_context_die): Use it. + (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to + the anonymous struct named by the naming typedef. + +2011-03-15 Ramana Radhakrishnan + + PR target/46788 + * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c' + in the output template. + +2011-03-15 Alan Modra + + PR target/48032 + * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not + presume symbol_refs without a symbol_ref_decl are suitably + aligned, nor other trees we may see here. Handle anchor symbols. + (legitimate_constant_pool_address_p): Comment. Add mode param. + Check cmodel=medium addresses. Adjust all calls. + (rs6000_emit_move): Don't call offsettable_ok_by_alignment on + creating cmodel=medium optimized access to locals. + * config/rs6000/constraints.md (R): Pass QImode to + legitimate_constant_pool_address_p. + * config/rs6000/predicates.md (input_operand): Pass mode to + legitimate_constant_pool_address_p. + * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p): + Update prototype. + +2011-03-14 Michael Meissner + + PR target/48053 + * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up + 64-bit constants being loaded into registers other than GPRs such + as loading 0 into a VSX register. + +2011-03-14 Rainer Orth + + * config/sol2.c (solaris_assemble_visibility): Remove obsolete + URLs. + +2011-03-14 Jakub Jelinek + + * doc/invoke.texi, doc/standards.texi: Refer to + gcc-4.6/c99status.html. + + * DEV-PHASE: Mark "prerelease". + +2011-03-14 Richard Guenther + + PR middle-end/48098 + * tree.c (build_vector_from_val): Adjust assert to requirements + and reality. + +2011-03-14 Jakub Jelinek + + PR bootstrap/48102 + * graphite-cloog-compat.h (build_cloog_prog): Remove STATE + parameter. + +2011-03-14 Andreas Tobler + + * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in + terms of target_flags_explicit. Adjust copyright year. + + * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits. + * config/rs6000/t-freebsd: New file. Add override for + LIB2FUNCS_EXTRA. + +2011-03-13 Chris Demetriou + + * doc/invoke.texi (-fdiagnostics-show-option): Replace with... + (-fno-diagnostics-show-option): this, to reflect current default. + (-Werror=): Update text about -fno-diagnostics-show-option. + +2011-03-12 Peter Bergner + + PR target/48053 + * config/rs6000/predicates.md (easy_vector_constant_add_self, + easy_vector_constant_msb): Do not handle V2DImode and V2DFmode. + * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that + mode is not V2DImode or V2DFmode. + (vspltis_constant): Do not handle V2DImode and V2DFmode. + (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg. + * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX + registers to 0. + (movdi_internal64): Likewise. + +2011-03-12 Sebastian Pop + + PR tree-optimization/47127 + * graphite-clast-to-gimple.c (build_cloog_prog): Removed state + parameter. + (set_cloog_options): Same. + (scop_to_clast): Same. + (print_clast_stmt): Do not call cloog_state_malloc and + cloog_state_free. + (print_generated_program): Same. + (gloog): Same. + * graphite-clast-to-gimple.h (cloog_state): Declared. + (scop_to_clast): Adjust declaration. + * graphite.c (cloog_state): Defined here. + (graphite_initialize): Call cloog_state_malloc. + (graphite_finalize): Call cloog_state_free. + +2011-03-11 Jason Merrill + + * attribs.c (lookup_attribute_spec): Take const_tree. + * tree.h: Adjust. + +2011-03-11 Joseph Myers + + * config/sparc/sparc.c (sparc_option_override): Use + PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2". + +2011-03-11 Richard Guenther + + PR tree-optimization/48067 + * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the + multiplication result will be only used once on the target + stmt. + +2011-03-11 Richard Guenther + + * doc/invoke.texi (max-inline-insns-single): Adjust default value. + +2011-03-11 Richard Guenther + + PR lto/48073 + * tree.c (find_decls_types_r): Do not walk types only reachable + from IDENTIFIER_NODEs. + +2011-03-11 Jakub Jelinek + + PR middle-end/48044 + * ipa.c (cgraph_remove_unreachable_nodes): Enqueue + all vnode->force_output nodes as needed. + +2011-03-11 Jason Merrill + + PR c++/48069 + * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not + COMPLETE_OR_UNBOUND_ARRAY_TYPE_P. + +2011-03-11 Martin Jambor + + * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of + cgraph_node. + +2011-03-11 Jakub Jelinek + + PR tree-optimization/48063 + * ipa-inline.c (cgraph_decide_inlining): Don't try to + inline functions called once if !tree_can_inline_p (node->callers). + +2011-03-11 Chen Liqin + + * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and + extra_objs. + * config/score/score3.c: Delete. + * config/score/score3.h: Delete. + * config/score/mul-div.S: Delete. + * config/score/sfp-machine.h: Add new file. + * config/score/constraints.md: Add new file. + * config/score/t-score-softfp: Add new file. + * config/score/t-score-elf: Remove score3.o, do not generate multilib. + * config/score/score7.c (score7_const_ok_for_letter_p): Delete. + (score7_extra_constraint): Delete. + (score7_option_override): Remove unused code. + * config/score/score.c: Remove score3 and score5 define and code. + * config/score/score.h: Remove score3 and score5 define and code. + * config/score/score.md: Remove score3 template and unusual insn. + * config/score/score.opt: Remove score3 and score5 options. + +2011-03-10 John David Anglin + + * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT + when _HPUX_SOURCE is defined. + (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified. + +2011-03-10 Jason Merrill + + PR c++/48029 + * stor-layout.c (layout_type): Don't set structural equality + on arrays of incomplete type. + * tree.c (type_hash_eq): Handle comparing them properly. + +2011-03-10 Jakub Jelinek + + PR debug/48043 + * config/s390/s390.c (s390_delegitimize_address): Make sure the + result mode matches original rtl mode. + +2011-03-10 Nick Clifton + + * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings. + (andsi3, andsi3_flags): Fix timings for three operand alternative. + +2011-03-09 Jakub Jelinek + + PR rtl-optimization/47866 + * expr.c (store_field): If MEM_SCALAR_P (target), don't use + MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx) + if target wasn't scalar. + * function.c (assign_stack_temp_for_type): Assert that neither + MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either + MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P + macro. + * rtl.h (MEM_SET_IN_STRUCT_P): Removed. + +2011-03-09 Andreas Krebbel + + * config/s390/s390-protos.h (s390_label_align): New prototype. + * config/s390/s390.c (s390_label_align): New function. + * config/s390/s390.h (LABEL_ALIGN): New target macro definition. + +2011-03-08 Michael Meissner + + PR target/47755 + * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle + V2DI/V2DF constants. Only all 0's or all 1's are easy. + (output_vec_const_move): Ditto. + +2011-03-08 Anatoly Sokolov + + * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro. + * config/mips/mips-protos.h (mips_preferred_reload_class): Remove. + * config/mips/mips.c (mips_preferred_reload_class): Make static. + Change 'rclass' argument and result type to reg_class_t. + (TARGET_PREFERRED_RELOAD_CLASS): Define. + +2011-03-08 Georg-Johann Lay + + * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. + * config/avr/avr.c (TARGET_REGISTER_MOVE_COST) + (TARGET_MEMORY_MOVE_COST): Define. + (avr_register_move_cost, avr_memory_move_cost): New Functions. + +2011-03-08 Jakub Jelinek + + PR debug/47881 + * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns + removed anything. + + PR tree-optimization/48022 + * fold-const.c (fold_comparison): Don't call fold_overflow_warning + for EQ/NE_EXPR. + +2011-03-07 Jakub Jelinek + + PR debug/47991 + * var-tracking.c (find_use_val): Return NULL for + cui->sets && cui->store_p BLKmode MEMs. + +2011-03-07 Anatoly Sokolov + + * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): + Remove. + * config/stormy16/stormy16-protos.h (xstormy16_print_operand, + xstormy16_print_operand_address): Remove. + * config/stormy16/stormy16.c (xstormy16_print_operand, + xstormy16_print_operand_address): Make static. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. + +2011-03-07 Pat Haugen + + PR target/47862 + * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define. + * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine + before definition. + +2011-03-07 Zdenek Dvorak + + PR bootstrap/48000 + * cfgloopmanip.c (fix_bb_placements): Return immediately + if FROM is BASE_LOOP's header. + +2011-03-07 Paul Wögerer + + * gimplify.c (gimplify_function_tree): Fix building calls + to __builtin_return_address. + +2011-03-07 Alan Modra + + * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define. + * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define. + * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define. + * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and + return_mode args. + * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes". + (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode. + (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode. + (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE. + * config/rs6000/rs6000.c + (rs6000_elf_end_indicate_exec_stack): Rename to.. + (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack + for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from.. + (rs6000_file_start): ..here. + (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New + file scope variables. + (call_ABI_of_interest): New function. + (init_cumulative_args): Set above vars when function return value + is a float, vector, or small struct. + (rs6000_function_arg_advance_1): Likewise for function args. + (rs6000_va_start): Set rs6000_passes_float if variable arg function + references float args. + +2011-03-07 Mingjie Xing + + * doc/cfg.texi: Remove "See" before @ref. + * doc/invoke.texi: Likewise. + +2011-03-05 Jason Merrill + + * doc/invoke.texi (C++ Dialect Options): Document ABI v5. + +2011-03-05 Anthony Green + + * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile. + +2011-03-05 Zdenek Dvorak + + PR rtl-optimization/47899 + * cfgloopmanip.c (fix_bb_placements): Fix first argument + to flow_loop_nested_p when moving the loop upward. + +2011-03-05 Richard Earnshaw + + PR target/47719 + * arm.md (movhi_insn_arch4): Accept any immediate constant. + +2011-03-05 Jakub Jelinek + + PR tree-optimization/47967 + * ipa-cp.c (build_const_val): Return NULL instead of creating + VIEW_CONVERT_EXPR for mismatching sizes. + (ipcp_create_replace_map): Return NULL if build_const_val failed. + (ipcp_insert_stage): If ipcp_create_replace_map returns NULL, + give up on versioning. + +2011-03-05 Alan Modra + + PR target/47986 + * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle + full cmodel medium/large lo_sum + high addresses. + +2011-03-04 Andreas Krebbel + + * config/s390/s390.c (s390_decompose_address): Reject non-literal + pool references in UNSPEC_LTREL_OFFSET. + +2011-03-04 Jan Hubicka + + PR lto/47497 + * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias. + (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here. + * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk): Add node pointers. + * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias, + cgraph_add_thunk): Add node pointers. + * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are + associated to right node. + (input_node): Update use of cgraph_same_body_alias + and cgraph_add_thunk. + +2011-03-04 Changpeng Fang + + * config/i386/i386.opt (mprefer-avx128): New flag. + * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit mode + when the flag -mprefer-avx128 is on. + +2011-03-04 Richard Sandiford + + * dwarf2out.c (compare_loc_operands): Fix address handling. + +2011-03-04 Alan Modra + + * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment. + +2011-03-04 Richard Guenther + + PR middle-end/47968 + * expmed.c (extract_bit_field_1): Prefer vector modes that + vec_extract patterns can handle. + +2011-03-04 Richard Guenther + + PR middle-end/47975 + * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P. + +2011-03-04 Richard Henderson + + * explow.c (emit_stack_save): Remove 'after' parameter. + (emit_stack_restore): Likewise. + * expr.h: Update to match. + * builtins.c, calls.c, stmt.c: Likewise. + * config/alpha/alpha.md, config/avr/avr.md: Likewise. + * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise. + * function.c (expand_function_end): Insert the emit_stack_save + sequence before parm_birth_insn instead of after. + +2011-03-03 Uros Bizjak + + * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX. + (ssse3_pmaddubsw128): Ditto. + (ssse3_pmaddubsw): Ditto. + +2011-03-03 Steve Ellcey + + * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH + +2011-03-03 Jakub Jelinek + + PR c/47963 + * gimplify.c (omp_add_variable): Only call omp_notice_variable + on TYPE_SIZE_UNIT if it is a DECL. + + PR debug/47283 + * cfgexpand.c (expand_debug_expr) : If MEM_REF + first operand is not is_gimple_mem_ref_addr, try to fold it. + If the operand still isn't is_gimple_mem_ref_addr, clear + MEM_EXPR on op0. + +2011-03-03 Richard Guenther + + PR middle-end/47283 + * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code + match comment. + (refs_may_alias_p_1): For release branches return true if + we are confused by our input. + +2011-03-03 Andreas Krebbel + + * config/s390/s390.c (s390_function_value): Rename to ... + (s390_function_and_libcall_value): ... this. + (s390_function_value): New function. + (s390_libcall_value): New function. + (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks. + * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove + target macro definitions. + * config/s390/s390-protos.h (s390_function_value): Remove prototype. + +2011-03-02 Joseph Myers + + * config/i386/freebsd64.h (CC1_SPEC): Define. + * config/i386/linux64.h (CC1_SPEC): Define. + * config/i386/x86-64.h (CC1_SPEC): Don't define. + +2011-03-02 Anatoly Sokolov + + * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): + Remove. + * config/stormy16/stormy16.c: Include reload.h. + (xstormy16_memory_move_cost): New function. + (TARGET_MEMORY_MOVE_COST): Define. + +2011-03-02 Richard Sandiford + + PR rtl-optimization/47925 + * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions + with side effects. Remove the more-specific check for volatile asms. + +2011-03-02 Alan Modra + + PR target/47935 + * config/rs6000/predicates.md (lwa_operand): Check cmodel medium + toc relative addresses for valid offsets. + +2011-03-01 Richard Guenther + + PR tree-optimization/47890 + * tree-vect-loop.c (get_initial_def_for_induction): Set + related stmt properly. + +2011-03-01 Richard Guenther + + PR lto/47924 + * lto-streamer.c (lto_record_common_node): Also register + the canonical type. + +2011-03-01 Richard Guenther + + PR lto/46911 + * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): + Do not stream DECL_ABSTRACT_ORIGIN. + (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION, + BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN. + * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): + Do not stream DECL_ABSTRACT_ORIGIN. + (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION, + BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN. + +2011-02-28 Anatoly Sokolov + + * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE, + FUNCTION_VALUE_REGNO_P): Remove. + * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove. + * config/stormy16/stormy16.c (xstormy16_function_value): Make static. + Add 'outgoing' argument. + (xstormy16_libcall_value, xstormy16_function_value_regno_p): New + function. + (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, + TARGET_FUNCTION_VALUE_REGNO_P): Define. + +2011-02-28 Kai Tietz + + PR debug/28047 + * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp. + (lookup_filename): Likewise. + * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp. + +2011-02-28 Bernd Schmidt + Jakub Jelinek + + PR middle-end/47893 + * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define. + (assign_stack_local_1): Change last argument type to int. + * function.c (assign_stack_local_1): Replace reduce_alignment_ok + argument with kind. If bit ASLK_RECORD_PAD is not set in it, + don't record padding space into frame_space_list nor use those areas. + (assign_stack_local): Adjust caller. + (assign_stack_temp_for_type): Call assign_stack_local_1 instead + of assign_stack_local, pass 0 as last argument. + * caller-save.c (setup_save_areas): Adjust assign_stack_local_1 + callers. + +2011-02-28 Jakub Jelinek + + PR debug/47283 + * cfgexpand.c (convert_debug_memory_address): Add AS parameter. + Use target address_mode and pointer_mode hooks instead of hardcoded + Pmode and ptr_mode. Handle some simple cases of extending if + POINTERS_EXTEND_UNSIGNED < 0. + (expand_debug_expr) : + Call convert_debug_memory_address. + (expand_debug_expr) : Pass as to + convert_debug_memory_address. + + PR middle-end/46790 + * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test. + * configure: Regenerated. + * config.in: Regenerated. + * varasm.c (default_function_section): Return NULL + if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name. + +2011-02-28 Martin Jambor + + * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix + the description to match the printed values. + +2011-02-28 Richard Guenther + + * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT + of the copied scope tree. + +2011-02-28 Ralf Wildenhues + + * doc/extend.texi (Function Attributes): Avoid deeply (and + wrongly) nested tables. + +2011-02-27 Jakub Jelinek + + PR middle-end/47903 + * real.c (real_arithmetic) : Clear padding bits in *r first if + r isn't op0 nor op1. + +2011-02-23 Georg-Johann Lay + + * config/avr/avr.md: Remove magic comment for emacs. + +2011-02-23 Georg-Johann Lay + + PR target/45261 + * config/avr/avr.c (avr_option_override): Use error on bad options. + (avr_help): New function. + (TARGET_HELP): Define. + +2011-02-22 Georg-Johann Lay + + PR target/42240 + * config/avr/avr.c (avr_cannot_modify_jumps_p): New function. + (TARGET_CANNOT_MODIFY_JUMPS_P): Define. + +2011-02-26 Gerald Pfeifer + + * doc/invoke.texi (ARC Options): Use CPU instead of cpu. + (ARM Options): Ditto. + (i386 and x86-64 Options): Ditto. + (RX Options): Ditto. + (SPARC Options): Ditto. + +2011-02-26 Tijl Coosemans + + * config.gcc (i386-*-freebsd*): Make i486 the default arch on + FreeBSD 6 and later. Generally use cpu generic. + +2011-02-25 Gerald Pfeifer + + * doc/cpp.texi: Update copyright years. + +2011-02-25 Sebastien Bourdeauducq + + PR target/46898 + * config/lm32/lm32.md (ashrsi3): Added needed variable. + +2011-02-25 Jon Beniston + + PR target/46898 + * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New. + * config/lm32/lm32.md (ashlsi3): Remove unused variable. + * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New. + (lm32_block_move_inline): Add type cast to remove warning. + (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out. + (gen_int_relational): Move declarations to start of function. + +2011-02-25 Eric Botcazou + + PR tree-optimization/45470 + * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement + can throw internally only. + * tree-vect-stmts.c (vectorizable_call): Likewise. + +2011-02-24 Anatoly Sokolov + + * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS, + PREFERRED_OUTPUT_RELOAD_CLASS): Remove. + * config/stormy16/stormy16-protos.h + (xstormy16_preferred_reload_class): Remove. + * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make + static. Change 'rclass' argument and return type to reg_class_t. + (TARGET_PREFERRED_RELOAD_CLASS, + TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. + +2011-02-24 Richard Guenther + + * lto-streamer-in.c (input_bb): Do not find referenced vars + in debug statements. + +2011-02-23 Jason Merrill + + * common.opt (fabi-version): Document v5 and v6. + +2011-02-23 Richard Guenther + + PR tree-optimization/47849 + * tree-if-conv.c (main_tree_if_conversion): Free postdom info. + +2011-02-23 Jie Zhang + + * opts-common.c (decode_cmdline_option): Print empty string + argument as "" in decoded->orig_option_with_args_text. + * gcc.c (execute): Print empty string argument as "" + in the verbose output. + (do_spec_1): Keep empty string argument. + +2011-02-23 Nathan Froyd + + * config.gcc: Declare score-* and crx-* obsolete. + +2011-02-23 Jie Zhang + + PR rtl-optimization/47763 + * web.c (web_main): Ignore naked clobber when replacing register. + +2011-02-22 Anatoly Sokolov + + * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): + Remove. + +2011-02-22 Sebastian Pop + + PR doc/47848 + * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes. + +2011-02-22 Mike Stump + + * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin + assembler. + * configure: Regenerate. + +2011-02-21 Chung-Lin Tang + + PR rtl-optimization/46002 + * ira-color.c (update_copy_costs): Change class intersection + test to reg_class_contents[] test of 'hard_regno'. + +2011-02-21 Joseph Myers + + * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather + than Driver option. + * config/hpux11.opt (mt): Likewise. + * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise. + * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise. + * config/vax/elf.opt (mno-asm-pic): Likewise. + * config/vms/vms.opt (map, mvms-return-codes): Likewise. + +2011-02-21 Mike Stump + + PR target/47822 + * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a + tree so we can get save the type. + * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot + for CFString instead of trying to use past the end of the builtins. + * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise. + * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise. + * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise. + * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING): + Rename to darwin_builtin_cfstring. + (darwin_init_cfstring_builtins): Return the built type. + +2011-02-21 Uros Bizjak + + PR target/47840 + * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32. + (_mm256_insert_epi64): Use _mm_insert_epi64. + +2011-02-21 Anatoly Sokolov + + * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. + * config/stormy16/stormy16-protos.h + (xstormy16_mode_dependent_address_p): Remove. + * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): + Make static. Change return type to bool. Change argument type to + const_rtx. Remove dead code. + (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + +2011-02-21 Richard Guenther + + PR lto/47820 + * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): + Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. + (lto_input_ts_block_tree_pointers): Hook a BLOCK into the + TUs context. + * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): + Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. + +2011-02-20 Richard Guenther + + PR lto/47822 + * tree.c (free_lang_data_in_decl): Clean builtins from + the TU decl BLOCK_VARS. + +2011-02-19 Alexandre Oliva + + PR debug/47620 + PR debug/47630 + * haifa-sched.c (fix_tick_ready): Skip tick computation + for debug insns. + +2011-02-19 Richard Guenther + + PR lto/47647 + * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers): + Remove lazy BLOCK_VARS streaming. + (lto_input_ts_block_tree_pointers): Likewise. + * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise. + +2011-02-19 Joseph Myers + + * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h. + +2011-02-19 Joseph Myers + + * config/i386/biarch32.h, config/i386/mach.h, + config/rs6000/aix.opt, config/sh/superh64.h: Remove. + +2011-02-19 Jakub Jelinek + + PR target/47800 + * config/i386/i386.md (peephole2 for shift and plus): Use + operands[1] original mode in the first insn. + +2011-02-18 Mike Stump + + * config/t-darwin (TM_H): Add dependency on darwin-sections.def. + +2011-02-18 Jan Hubicka + + PR middle-end/47788 + * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits + to zero when the function is not inlinable at all. + +2011-02-18 John David Anglin + + * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts. + * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, + pthread_mutex_unlock, pthread_once): Reinstate pthread stubs. + * config/pa/t-pa-hpux11: Add rules to build pthread stubs. + * config/pa/t-pa64: Likewise. + * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + +2011-02-18 Jakub Jelinek + + PR driver/47787 + * gcc.c (default_compilers): Clear combinable field for "@cpp-output". + +2011-02-18 John David Anglin + + PR target/47792 + * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name. + +2011-02-18 Anatoly Sokolov + + * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, + RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P, + LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P, + GO_IF_LEGITIMATE_ADDRESS): Remove macros. + * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define. + (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p, + m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p, + m32r_load_postinc_p, m32r_store_preinc_predec_p, + m32r_legitimate_address_p): New functions. + * config/m32r/constraints.md (constraint "S"): Don't use + STORE_PREINC_PREDEC_P. + (constraint "U"): Don't use LOAD_POSTINC_P. + +2011-02-18 Chung-Lin Tang + + PR rtl-optimization/46178 + * ira.c (setup_hard_regno_class): Use ira_class_translate[] to + compute ira_hard_regno_cover_class[]. + +2011-02-18 Richard Guenther + + PR lto/47798 + * lto-streamer.h (lto_global_var_decls): Declare. + * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register + statics for global var processing. + +2011-02-18 Richard Guenther + + PR tree-optimization/47737 + * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix + edge dominance check. + +2011-02-18 Jakub Jelinek + + PR debug/47780 + * cfgexpand.c (expand_debug_expr) : Call copy_rtx to + avoid invalid rtx sharing. + +2011-02-18 Gerald Pfeifer + + * doc/cpp.texi (Obsolete Features): Add background on the + origin of assertions. + +2011-02-17 Iain Sandoe + + * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for + objc_abi == 2. + * config/darwin.c (output_objc_section_asm_op): Added support for + ABI v1 and v2. + (is_objc_metadata): New. + (darwin_objc2_section): New. + (darwin_objc1_section): New. + (machopic_select_section): Added support for ABI v1 and v2. + (darwin_emit_objc_zeroed): New. + (darwin_output_aligned_bss): Detect objc metadata and treat it + appropriately. + (darwin_asm_output_aligned_decl_common): Same. + (darwin_asm_output_aligned_decl_local): Same. + * config/darwin-sections.def: Updated for ABI v1 and v2. + * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When + compiling Objective-C code for the NeXT runtime, default to using + ABI version 0 for 32-bit, and version 2 for 64-bit. + +2011-02-17 Joseph Myers + + * common.opt (optimize_fast): New Variable. + * opts.c (default_options_optimization): Use opts->x_optimize_fast + instead of local variable ofast. + +2011-02-17 Nicola Pero + + * doc/invoke.texi (fobjc-abi-version): Documented. + (fobjc-nilcheck): Documented. + (fno-nil-receiver): Updated documentation to refer to the NeXT ABI + version. + +2011-02-17 Joseph Myers + + PR driver/47390 + * common.opt (export-dynamic): New Driver option. + * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}. + +2011-02-17 Joseph Myers + + * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*. + +2011-02-17 Alexandre Oliva + Jan Hubicka + + PR debug/47106 + PR debug/47402 + * cfgexpand.c (account_used_vars_for_block): Remove. + (estimated_stack_frame_size): Use referenced vars. + * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced + that were referenced in the original function. Test src_fn + rather than cfun. Drop redundant get_var_ann. + (setup_one_parameter): Drop redundant get_var_ann. + (declare_return_variable): Likewise. + (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn. + (copy_arguments_for_versioning): Drop redundant get_var_ann. + * ipa-inline.c (compute_inline_parameters): Do not compute + disregard_inline_limits here. + (compute_inlinable_for_current, pass_inlinable): New. + (pass_inline_parameters): Require PROP_referenced_vars. + * cgraphunit.c (cgraph_process_new_functions): Don't run + compute_inline_parameters explicitly unless function is in SSA form. + (cgraph_analyze_function): Set .disregard_inline_limits. + * tree-sra.c (convert_callers): Compute inliner parameters + only for functions already in SSA form. + +2011-02-17 Joseph Myers + + * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle + -mlittle-endian-data. + +2011-02-17 Joseph Myers + + * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and + -mno-fpu, not -fpu and -no-fpu. + * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise. + * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise. + +2011-02-17 Uros Bizjak + + PR target/43653 + * config/i386/i386.c (ix86_secondary_reload): Handle SSE + input reload with PLUS RTX. + +2011-02-16 Joseph Myers + + * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead + of InverseVar(MDMX). + +2011-02-16 Joseph Myers + + * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of + --m4-340. + +2011-02-16 Joseph Myers + + * config/mn10300/mn10300.opt (mno-crt0): New. + +2011-02-16 Joseph Myers + + * config/m68k/uclinux.opt (static-libc): New Driver option. + +2011-02-16 Joseph Myers + + * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*. + +2011-02-16 Joseph Myers + + * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of + %{muser-extend-enabled}. + +2011-02-16 Richard Guenther + + PR tree-optimization/47738 + * tree-ssa-loop.c (run_tree_predictive_commoning): Return + the TODO from tree_predictive_commoning. + +2011-02-15 Jeff Law + + Revert + 2011-01-25 Jeff Law + + PR rtl-optimization/37273 + * ira-costs.c (scan_one_insn): Detect constants living in memory and + handle them like argument loads from stack slots. Do not double + count memory for memory constants and argument loads from stack slots. + +2011-02-15 H.J. Lu + + PR middle-end/47725 + * combine.c (cant_combine_insn_p): Revert the last change. + +2011-02-15 Michael Meissner + + PR target/47755 + * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI + mode for vector constants. Remove code that checks for TImode. + +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * cgraph.h (compute_inline_parameters): Return void. + * ipa-inline.c (compute_inline_parameters): Adjust. + +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-inline.h (estimated_stack_frame_size): Take cgraph node + rather than decl. + * cfgexpand.c (estimated_stack_frame_size): Likewise. + * ipa-inline.c (compute_inline_parameters): Adjust. + +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument. + Adjust all users. Pass FN to... + * tree-flow-inline.h (first_referenced_var): ... this. Add + fn argument. + * ipa-struct-reorg.c: Adjust. + * tree-dfa.c: Adjust. + * tree-into-ssa.c: Adjust. + * tree-sra.c: Adjust. + * tree-ssa-alias.c: Adjust. + * tree-ssa-live.c: Adjust. + * tree-ssa.c: Adjust. + * tree-ssanames.c: Adjust. + * tree-tailcall.c: Adjust. + +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-flow.h (referenced_var_lookup): Add fn parameter. + Adjust all callers. + * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun. + * tree-flow-inline.h: Adjust. + * gimple-pretty-print.c: Adjust. + * tree-into-ssa.c: Adjust. + * tree-ssa.c: Adjust. + * cfgexpand.c: Adjust. + +2011-02-15 Nathan Froyd + + * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + * config/iq2000/constraints.md: New file. + * config/iq2000/iq2000.md: Include it. + (define_insn ""): Delete. + (movsi_internal2, movhi_internal2, movqi_internal2): Delete + unsupported constraint letters from patterns. + (call_value, call_value_internal1): Likewise. + (call_value_multiple_internal1): Likewise. + +2011-02-15 Nick Clifton + + * config/mn10300/mn10300.c: Include tm-constrs.h. + (struct liw_data): New data structure describing an LIW candidate + instruction. + (extract_bundle): Use struct liw_data. Allow small integer + operands for some instructions. + (check_liw_constraints): Use struct liw_data. Remove swapped + parameter. Add comments describing the checks. Fix bug when + assigning the source of liw1 to the source of liw2. + (liw_candidate): Delete. Code moved into extract_bundle. + (mn10300_bundle_liw): Use struct liw_data. Check constraints + before swapping. + * config/mn10300/predicates.md (liw_operand): New predicate. + Allows registers and small integer constants. + * config/mn10300/constraints.md (O): New constraint. Accetps + integers in the range -8 to +7 inclusive. + * config/mn10300/mn10300.md (movesi_internal): Add an alternative + for moving a small integer into a register. Give this alternative + LIW attributes. + (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise. + (ashlsi3): Likewise, plus give LIW attributes to the alternatives + using the J,K,L and M constraints, + (liw): Remove SI mode on second operands to allow for HI and QI + mode values. + (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the + instruction. + +2011-02-15 H.J. Lu + + PR middle-end/47725 + * combine.c (cant_combine_insn_p): Check zero/sign extended + hard registers. + +2011-02-15 Richard Guenther + + PR tree-optimization/47743 + * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number + for a non-type-compatible VN lookup bail out. + +2011-02-15 Nathan Froyd + + * config/fr30/constraints.md: New file. + * config/fr30/fr30.md: Include it. + * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + +2011-02-15 Nathan Froyd + + * config/frv/constraints.md: New file. + * config/frv/predicates.md: Include it. + * config/frv/frv.c (reg_class_from_letter): Delete. + (frv_option_override): Don't initialize it. + * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete. + (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete. + (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete. + (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete. + (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete. + (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete. + (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete. + (REG_CLASS_FROM_CONSTRAINT): Delete. + +2011-02-15 Jakub Jelinek + + PR middle-end/47581 + * config/i386/i386.c (ix86_compute_frame_size): Don't align offset + if frame size is 0 in a leaf function. + +2011-02-15 Rainer Orth + + PR pch/14940 + * config/alpha/host-osf.c: New file. + * config/alpha/x-osf: New file. + * config.host (alpha*-dec-osf*): Use it. + +2011-02-14 Anatoly Sokolov + + * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. + * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove. + * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to... + (rx_mode_dependent_address_p): ...this. Make static. Change argument + type to const_rtx. + (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + +2011-02-14 Nathan Froyd + + * config/stormy16/constraints.md: New file. + * config/stormy16/predicates.md (nonimmediate_nonstack_operand): + Use satisfies_constraint_Q and satisfies_constraint_R. + * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p): + Delete. + (xstormy16_legitiamte_address_p): Declare. + * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): + Un-staticize. + (xstormy16_extra_constraint_p): Delete. + +2011-02-14 Eric Botcazou + + PR tree-optimization/46494 + * loop-unroll.c (split_edge_and_insert): Adjust comment. + * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info. + (pass_rtl_loop_done): Add TODO_verify_flow. + * fwprop.c (pass_rtl_fwprop): Likewise. + * modulo-sched.c (pass_sms): Likewise. + * tree-ssa-dom.c (pass_dominator): Likewise. + * tree-ssa-loop-ch.c (pass_ch): Likewise. + * tree-ssa-loop.c (pass_complete_unrolli): Likewise. + (pass_tree_loop_done): Likewise. + * tree-ssa-pre.c (execute_pre): Likewise. + * tree-ssa-reassoc.c (pass_reassoc): Likewise. + * tree-ssa-sink.c (pass_sink_code): Likewise. + * tree-vrp.c (pass_vrp): Likewise. + +2011-02-14 Nathan Froyd + + * config/v850/constraints.md: New file. + * config/v850/v850.md: Include it. + * config/v850/predicates.md (reg_or_0_operand): Use + satisfies_constraint_G. + (special_symbolref_operand): Use satisfies_constraint_K. + * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p. + (GO_IF_LEGITIMATE_ADDRESS): Likewise. + (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete. + (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint. + (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise. + (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise. + +2011-02-14 Anatoly Sokolov + + PR target/47696 + * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device + description. + +2011-02-14 Nathan Froyd + + * config/mcore/constraints.md: New file. + * config/mcore/mcore.md: Include it. + * config/mcore/mcore.c (reg_class_from_letter): Delete. + * config/mcore/mcore.h (reg_class_from_letter): Delete. + (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use + insn_const_int_ok_for_constraint. + (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise. + (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + +2011-02-14 Rainer Orth + + PR ada/41929 + * config/sparc/sol2-unwind.h: Include , + (IS_SIGHANDLER): Define. + (sparc64_is_sighandler): New function, split off from + sparc64_fallback_frame_state. + (sparc_is_sighandler): New function, split off from + sparc_fallback_frame_state. + (sparc64_fallback_frame_state): Merge with ... + (sparc_fallback_frame_state): ... this into ... + (MD_FALLBACK_FRAME_STATE_FOR): ... this. + Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save. + Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk + stack instead of hardcoded offsets. + +2011-02-14 Andriy Gapon + + PR target/45808 + * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case. + +2011-02-13 Ralf Wildenhues + + * configure: Regenerate. + +2011-02-12 Joseph Myers + + PR driver/45731 + * gcc.c (asm_options): Correct spec matching --target-help. + +2011-02-12 Martin Jambor + + * tree-cfg.c (verify_gimple_call): Return true upon invalid argument + to gimple call error. + +2011-02-12 Mike Stump + + * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize + comments in backslash regions. + +2011-02-12 Mike Stump + Jakub Jelinek + Iain Sandoe + + PR target/47324 + * dwarf2out.c (output_cfa_loc): When required, apply the + DWARF2_FRAME_REG_OUT macro to adjust register numbers. + (output_loc_sequence): Likewise. + (output_loc_operands_raw): Likewise. + (output_loc_sequence_raw): Likewise. + (output_cfa_loc): Likewise. + (output_loc_list): Suppress register number adjustment when + calling output_loc_sequence() + (output_die): Likewise. + +2011-02-12 Anatoly Sokolov + + * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): + Remove macros. + * config/xtensa/xtensa.c (xtensa_register_move_cost, + xtensa_memory_move_cost): New functions. + (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define. + +2011-02-12 Alexandre Oliva + + PR lto/47225 + * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la + in the current directory. + * configure: Rebuilt. + +2011-02-12 Iain Sandoe + + * config/darwin.c (darwin_override_options): Add a hunk missed + from the commit of r168571. Trim comment line lengths and + correct indents of the preceding block. + +2011-02-12 Iain Sandoe + + * gcc.c (driver_handle_option): Concatenate the argument to -F with + the switch. + +2011-02-11 Joseph Myers + + * common.opt (nostartfiles): New Driver option. + +2011-02-11 Xinliang David Li + + PR tree-optimization/47707 + * tree-chrec.c (convert_affine_scev): Keep type precision. + +2011-02-11 Eric Botcazou + + PR tree-optimization/47420 + * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX. + +2011-02-11 Pat Haugen + + PR rtl-optimization/47614 + * rtl.h (check_for_inc_dec): Declare. + * dse.c (check_for_inc_dec): Externalize... + * postreload.c (reload_cse_simplify): ...use it before deleting stmt. + (reload_cse_simplify_operands): Don't simplify opnds with side effects. + +2011-02-11 Joseph Myers + + PR driver/47678 + * gcc.c (main): Do not compile inputs if there were errors in + option handling. + * opts-common.c (read_cmdline_option): Check for wrong language + after other error checks. + +2011-02-11 Nathan Froyd + + * cgraph.c: Fix comment typos. + * cgraph.h: Likewise. + * cgraphunit.c: Likewise. + * ipa-cp.c: Likewise. + * ipa-inline.c: Likewise. + * ipa-prop.c: Likewise. + * ipa-pure-const.c: Likewise. + * ipa-ref.c: Likewise. + * ipa-reference.c: Likewise. + +2011-02-11 Jakub Jelinek + + PR debug/47684 + * tree-predcom.c (single_nonlooparound_use): Ignore debug uses. + +2011-02-11 Rainer Orth + + PR testsuite/47400 + * doc/sourcebuild.texi (Require Support): Document + dg-require-ascii-locale. + +2011-02-11 Mingjie Xing + + * doc/lto.texi (Write summary): Fix missing parentheses. + +2011-02-10 DJ Delorie + + * config/m32c/m32c.c (m32c_option_override): Disable + -fcombine-stack-adjustments until flag value tracking and compare + optimization can be rewritten. + +2011-02-10 Peter Bergner + + * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to + PROCESSOR_POWER7. + (PROCESSOR_DEFAULT64): Likewise. + +2011-02-10 Richard Henderson + + * config/rx/predicates.md (rx_zs_comparison_operator): Revert + change from 2011-02-03. + * config/rx/rx.c (flags_from_code): Likewise. + (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag + is valid, n/pz otherwise. + (rx_select_cc_mode): Return CCmode if Y is not zero. + +2011-02-10 Richard Guenther + + * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8. + +2011-02-10 Richard Guenther + + PR tree-optimization/47677 + * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps. + +2011-02-10 Jakub Jelinek + + PR target/47665 + * combine.c (make_compound_operation): Only change shifts into + multiplication for SCALAR_INT_MODE_P. + +2011-02-10 Jie Zhang + + PR testsuite/47622 + Revert + 2011-02-05 Jie Zhang + PR debug/42631 + * web.c (entry_register): Don't clobber the number of the + first uninitialized reference in used[]. + +2011-02-09 Richard Guenther + + PR tree-optimization/47664 + * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit + all edges again. + +2011-02-09 David Edelsohn + + PR target/46481 + PR target/47032 + * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to + PROCESSOR_POWER7. + (PROCESSOR_DEFAULT64): Same. + (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete. + +2011-02-09 Rainer Orth + + * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define. + +2011-02-09 Martin Jambor + + PR middle-end/45505 + * tree-sra.c (struct access): New flags grp_scalar_read and + grp_scalar_write. Changed description of assignment read and write + flags. + (dump_access): Dump new flags, reorder all of them. + (sort_and_splice_var_accesses): Set the new flag accordingly, use them + to detect multiple scalar reads. + (analyze_access_subtree): Use the new scalar read write flags instead + of the old flags. Adjusted comments. + +2011-02-08 DJ Delorie + + PR target/47548 + * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim + patterns. + +2011-02-08 Joseph Myers + + * config/m68k/uclinux.opt: New. + * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt. + +2011-02-08 Joseph Myers + + * config/cris/elf.opt (sim): New Driver option. + +2011-02-08 Joseph Myers + + * config/xtensa/elf.opt: New. + * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt. + +2011-02-08 Joseph Myers + + * config/vax/elf.opt: New. + * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt. + +2011-02-08 Joseph Myers + + * config/rs6000/aix64.opt (posix, pthread): New Driver options. + +2011-02-08 Joseph Myers + + * config/gnu-user.opt: New. + * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | + *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu, + *-*-uclinux*): Use gnu-user.opt. + +2011-02-08 Thomas Schwinge + + * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option. + * config/i386/gnu.h (CPP_SPEC): Likewise. + +2011-02-08 Ian Lance Taylor + + * common.opt (fcx-limited-range): Add SetByCombined flag. + (ffinite-math-only, fmath-errno, frounding-math): Likewise. + (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise. + (fassociative-math, freciprocal-math): Likewise. + (funsafe-math-optimizations): Likewise. + * opth-gen.awk: Handle SetByCombined. + * optc-gen.awk: Likewise. + * opts.c (set_fast_math_flags): Don't override flag if set by frontend. + (set_unsafe_math_optimizations_flags): Likewise. + * doc/options.texi (Option properties): Document SetByCombined. + +2011-02-08 Joseph Myers + + * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*, + i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe, + m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*, + m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*, + sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete. + +2011-02-08 Sebastian Pop + + PR tree-optimization/46834 + PR tree-optimization/46994 + PR tree-optimization/46995 + * graphite-sese-to-poly.c (used_outside_reduction): New. + (detect_commutative_reduction): Call used_outside_reduction. + (rewrite_commutative_reductions_out_of_ssa_close_phi): Call + translate_scalar_reduction_to_array only when at least one + loop-phi/close-phi tuple has been detected. + +2011-02-08 Richard Guenther + + PR middle-end/47639 + * tree-vect-generic.c (expand_vector_operations_1): Update + stmts here ... + (expand_vector_operations): ... not here. Cleanup EH info + and the CFG if required. + +2011-02-08 Richard Guenther + + PR tree-optimization/47641 + * tree-ssa.c (execute_update_addresses_taken): For asm outputs + require type compatibility. + +2011-02-08 Andreas Krebbel + + * gimple-low.c (lower_function_body): Don't remove the location of + the return statement here. + (lower_gimple_return): Do it here instead but only if the return + statement is actually used twice. + +2011-02-08 Richard Guenther + + PR tree-optimization/47632 + * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove + unused up_to_stmt parameter, return whether cfg-cleanup is + necessary, remove EH info properly. + (forward_propagate_into_gimple_cond): Adjust caller. + (forward_propagate_into_cond): Likewise. + (forward_propagate_comparison): Likewise. + (tree_ssa_forward_propagate_single_use_vars): Make + forward_propagate_comparison case similar to the two others. + +2011-02-08 Nick Clifton + + * config/mn10300/mn10300.opt (mliw): New command line option. + * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec. + (liw_bundling): New automaton. + (liw): New attribute. + (liw_op): New attribute. + (liw_op1, liw_op2, liw_both, liw_either): New reservations. + (movsi_internal): Add LIW attributes. + (andsi3): Likewise. + (iorsi3): Likewise. + (xorsi3): Likewise. + (addsi3): Separate register and immediate alternatives. + Add LIW attributes. + (subsi3): Likewise. + (cmpsi): Likewise. + (aslsi3): Likewise. + (lshrsi3): Likewise. + (ashrsi3): Likewise. + (liw): New pattern. + * config/mn10300/mn10300.c (liw_op_names): New + (mn10300_print_operand): Handle 'W' operand descriptor. + (extract_bundle): New function. + (check_liw_constraints): New function. + (liw_candidate): New function. + (mn10300_bundle_liw): New function. + (mn10300_reorg): New function. + (TARGET_MACHINE_DEPENDENT_REORG): Define. + (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW. + * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define + __LIW__ or __NO_LIW__. + * doc/invoke.texi: Describe the -mliw command line option. + +2011-02-07 John David Anglin + + * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts. + * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, + pthread_mutex_unlock): Remove. + * config/pa/t-pa-hpux11: Remove rules to build pthread stubs. + * config/pa/t-pa64: Likewise. + * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against + shared libc if not linking against libpthread. + * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. + +2011-02-07 Iain Sandoe + + PR target/47558 + * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first + on 10.6 and later to ensure that we always use the unwinder from + the system. Only add -no_compact_unwind when tarteting darwin + 10.6 or later. + +2011-02-07 Steve Ellcey + + PR target/46997 + * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN. + (vec_interleave_lowv2sf): Ditto. + (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check. + (vec_extract_oddv2sf): Ditto. + +2011-02-07 Mike Stump + + PR target/42333 + Add __ieee_divdc3 entry point. + * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3 + entry point. + (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins. + * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise. + * config/darwin.c (darwin_rename_builtins): Add. + * config/darwin-protos.h (darwin_rename_builtins): Add. + +2011-02-07 Michael Meissner + + PR target/47636 + * config/rs6000/rs6000.md (rsqrt2): Use the correct macro + for the condition. + +2011-02-07 Mike Stump + + * config/darwin.opt (mmacosx-version-min): Update default OS version. + +2011-02-07 Denis Chertykov + + PR target/47534 + * config/avr/libgcc.S (exit): Move .endfunc + +2011-02-07 Richard Guenther + + PR tree-optimization/47615 + * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument. + * tree-ssa-sccvn.c (default_vn_walk_kind): New global. + (run_scc_vn): Initialize it. + (visit_reference_op_load): Use it. + * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE. + +2011-02-07 Ulrich Weigand + + * config/spu/spu.c (spu_init_libfuncs): Install SImode and + DImode trapping arithmetic libfuncs. + +2011-02-07 Richard Guenther + + PR tree-optimization/47621 + * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from + two duplicates ... + (execute_update_addresses_taken): ... here. Make it more + conservative in what we accept. + +2011-02-06 Joseph Myers + + * config/sparc/freebsd.h (ASM_SPEC): Define. + * config/sparc/vxworks.h (ASM_SPEC): Define. + +2011-02-06 Joseph Myers + + * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}. + +2011-02-06 Steven Bosscher + + * doc/invoke.texi: Remove reference to compiler internals from + user documentation. + + * reg-notes.def: Remove REG_VALUE_PROFILE. + * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE. + +2011-02-05 Jakub Jelinek + + PR middle-end/47610 + * varasm.c (default_section_type_flags): If decl is NULL, + and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit. + +2011-02-05 Jie Zhang + + PR debug/42631 + * web.c (entry_register): Don't clobber the number of the + first uninitialized reference in used[]. + +2011-02-04 Sebastian Pop + + PR tree-optimization/46194 + * tree-data-ref.c (analyze_miv_subscript): Remove comment. + (build_classic_dist_vector_1): Do not represent classic distance + vectors when the access functions are variating in different loops. + +2011-02-04 Joseph Myers + + * config/mips/iris6.opt: New. + * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt. + +2011-02-04 Richard Henderson + Steve Ellcey + + PR target/46997 + * config/ia64/predicates.md (mux1_brcst_element): New. + * config/ia64/ia64-protos.h (ia64_unpack_assemble): New. + * config/ia64/ia64.c (ia64_unpack_assemble): New. + (ia64_unpack_sign): New. + (ia64_expand_unpack): Rewrite using new routines. + (ia64_expand_widen_sum): Ditto. + (ia64_expand_dot_prod_v8qi): Ditto. + * config/ia64/vect.md (mulv8qi3): Rewrite to use new + routines, add endian check. + (pmpy2_even): Rename from pmpy2_r, add endian check. + (pmpy2_odd): Rename from pmpy2_l, add endian check. + (vec_widen_smult_lo_v4hi): Rewrite using new routines. + (vec_widen_smult_hi_v4hi): Ditto. + (vec_widen_umult_lo_v4hi): Ditto. + (vec_widen_umult_hi_v4hi): Ditto. + (mulv2si3): Change endian checks. + (sdot_prodv4hi): Rewrite with new calls. + (udot_prodv4hi): New. + (vec_pack_ssat_v4hi): Add endian check. + (vec_pack_usat_v4hi): Ditto. + (vec_pack_ssat_v2si): Ditto. + (max1_even): Rename from max1_r, add endian check. + (max1_odd): Rename from max1_l, add endian check. + (*mux1_rev): Format change. + (*mux1_mix): Ditto. + (*mux1_shuf): Ditto. + (*mux1_alt): Ditto. + (*mux1_brcst_v8qi): Use new predicate. + (vec_extract_evenv8qi): Remove endian check. + (vec_extract_oddv8qi): Ditto. + (vec_interleave_lowv4hi): Format change. + (vec_interleave_highv4hi): Ditto. + (mix2_even): Rename from mix2_r, add endian check. + (mix2_odd): Rename from mux2_l, add endian check. + (*mux2): Fix mask setting for TARGET_BIG_ENDIAN. + (vec_extract_evenodd_helper): Format change. + (vec_extract_evenv4hi): Remove endian check. + (vec_extract_oddv4hi): Remove endian check. + (vec_interleave_lowv2si): Format change. + (vec_interleave_highv2si): Format change. + (vec_initv2si): Remove endian check. + (vecinit_v2si): Add endian check. + (reduc_splus_v2sf): Add endian check. + (reduc_smax_v2sf): Ditto. + (reduc_smin_v2sf): Ditto. + (vec_initv2sf): Remove endian check. + (fpack): Add endian check. + (fswap): Add endian check. + (vec_interleave_highv2sf): Add endian check. + (vec_interleave_lowv2sf): Add endian check. + (fmix_lr): Add endian check. + (vec_setv2sf): Format change. + (*vec_extractv2sf_0_be): Use shift to extract operand. + (*vec_extractv2sf_1_be): New. + (vec_pack_trunc_v4hi): Add endian check. + (vec_pack_trunc_v2si): Format change. + +2011-02-04 Jakub Jelinek + + PR inline-asm/23200 + * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't + do bb, locus and block comparison and disallow loads if it is not set. + (stmt_is_replaceable_p): New function. + (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p + callers. + * expr.c (expand_expr_real_1) : If + get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use + SSA_NAME_DEF_STMT. + * tree-flow.h (stmt_is_replaceable_p): New prototype. + +2011-02-04 Joseph Myers + + * config/rs6000/xilinx.opt: New. + * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt. + +2011-02-04 Joseph Myers + + * config/mips/mips.opt (EB, EL, noasmopt): New Driver options. + +2011-02-03 Anatoly Sokolov + + * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS, + PREFERRED_OUTPUT_RELOAD_CLASS): Remove. + * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class, + secondary_reload_info, xtensa_secondary_reload): Remove. + * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS, + TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. + (xtensa_preferred_reload_class): Make static. Change return and + 'rclass' argument type to reg_class_t. Remove 'isoutput' argument. + Use CONST_DOUBLE_P predicate. + (xtensa_preferred_output_reload_class): New function. + (xtensa_secondary_reload): Make static. + +2011-02-03 Joseph Myers + + * config/microblaze/microblaze.opt (Zxl-mode-bootstrap, + Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel, + Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options. + +2011-02-03 Jakub Jelinek + + PR middle-end/31490 + * output.h (SECTION_RELRO): Define. + (SECTION_MACH_DEP): Adjust. + (get_variable_section): New prototype. + * varpool.c (varpool_finalize_named_section_flags): New function. + (varpool_assemble_pending_decls): Call it. + * cgraph.h (varpool_finalize_named_section_flags): New prototype. + * cgraphunit.c (cgraph_output_in_order): Call + varpool_finalize_named_section_flags. + * varasm.c (get_section): Allow section flags conflicts between + relro and read-only sections if the section hasn't been declared yet. + Set SECTION_OVERRIDE after diagnosing section type conflict. + (get_variable_section): No longer static. + (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for + readonly sections that need relocations. + (decl_readonly_section_1): New function. + (decl_readonly_section): Use it. + + Revert: + 2010-11-17 Dinar Temirbulatov + Steve Ellcey + + PR middle-end/31490 + * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask + if section attribute used. + +2011-02-03 Jakub Jelinek + + * config/darwin.h (SECTION_NO_ANCHOR): Remove. + * config/darwin.c (SECTION_NO_ANCHOR): Define. + (darwin_init_sections): Remove assertion. + +2011-02-03 Nick Clifton + + * config/rx/predicates.md (rx_zs_comparison_operator): Remove + lt and ge. + * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode. + * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes + instead of "n" and "pz". + (flags_from_code): LT and GE tests need CC_FLAG_O as well as + CC_FLAG_S. + +2011-02-03 Jakub Jelinek + + PR target/47312 + * expr.c (expand_expr_real_2) : If target doesn't expand + fma, expand FMA_EXPR as fma{,f,l} call. + + PR lto/47274 + * lto-streamer-out.c (write_symbol): When writing kind and visibility, + copy them into a unsigned char variable and pass address of it to + lto_output_data_stream. + + PR target/47564 + * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx + around backend_init_target and lang_dependent_init_target calls. + * cgraphunit.c (cgraph_debug_gimple_stmt): New function. + (verify_cgraph_node): Don't call set_cfun here. Use + cgraph_debug_gimple_stmt instead of debug_gimple_stmt. + Set error_found for incorrectly represented calls to thunks. + +2011-02-03 Alexandre Oliva + + PR debug/43092 + PR rtl-optimization/43494 + * rtl.h (for_each_inc_dec_fn): New type. + (for_each_inc_dec): Declare. + * rtlanal.c (struct for_each_inc_dec_ops): New type. + (for_each_inc_dec_find_inc_dec): New fn. + (for_each_inc_dec_find_mem): New fn. + (for_each_inc_dec): New fn. + * dse.c (struct insn_size): Remove. + (replace_inc_dec, replace_inc_dec_mem): Remove. + (emit_inc_dec_insn_before): New fn. + (check_for_inc_dec): Use it, along with for_each_inc_dec. + (canon_address): Pass mem modes to cselib_lookup. + * cselib.h (cselib_lookup): Add memmode argument. Adjust callers. + (cselib_lookup_from_insn): Likewise. + (cselib_subst_to_values): Likewise. + * cselib.c (find_slot_memmode): New var. + (cselib_find_slot): New fn. Use it instead of + htab_find_slot_with_hash everywhere. + (entry_and_rtx_equal_p): Use find_slot_memmode. + (autoinc_split): New fn. + (rtx_equal_for_cselib_p): Rename and implement in terms of... + (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on. + Deal with autoinc. Special-case recursion into MEMs. + (cselib_hash_rtx): Likewise. + (cselib_lookup_mem): Infer pmode from address mode. Distinguish + address and MEM modes. + (cselib_subst_to_values): Add memmode, pass it on. + Deal with autoinc. + (cselib_lookup): Add memmode argument, pass it on. + (cselib_lookup_from_insn): Add memmode. + (cselib_invalidate_rtx): Discard obsolete push_operand handling. + (struct cselib_record_autoinc_data): New. + (cselib_record_autoinc_cb): New fn. + (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM + mode to cselib_lookup. Reset autoinced REGs here instead of... + (cselib_process_insn): ... here. + * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode + to cselib_lookup. + (add_uses): Likewise, also to cselib_subst_to_values. + (add_stores): Likewise. + * sched-deps.c (add_insn_mem_dependence): Pass mode to + cselib_subst_to_values. + (sched_analyze_1, sched_analyze_2): Likewise. Adjusted. + * gcse.c (do_local_cprop): Adjusted. + * postreload.c (reload_cse_simplify_set): Adjusted. + (reload_cse_simplify_operands): Adjusted. + * sel-sched-dump (debug_mem_addr_value): Pass mode. + +2011-02-03 Alexandre Oliva + + PR tree-optimization/45122 + * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make + unsafe assumptions when there's more than one loop exit. + +2011-02-02 Michael Meissner + + PR target/47272 + * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): + Document using vector double with the load/store builtins, and + that the load/store builtins always use Altivec instructions. + + * config/rs6000/vector.md (vector_altivec_load_): New insns + to use altivec memory instructions, even on VSX. + (vector_altivec_store_): Ditto. + + * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New + function. + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add + V2DF, V2DI support to load/store overloaded builtins. + + * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add + altivec load/store builtins for V2DF/V2DI types. + + * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't + set avoid indexed addresses on power6 if -maltivec. + (altivec_expand_ld_builtin): Add V2DF, V2DI support, use + vector_altivec_load/vector_altivec_store builtins. + (altivec_expand_st_builtin): Ditto. + (altivec_expand_builtin): Add VSX memory builtins. + (rs6000_init_builtins): Add V2DI types to internal types. + (altivec_init_builtins): Add support for V2DF/V2DI altivec + load/store builtins. + (rs6000_address_for_altivec): Insure memory address is appropriate + for Altivec. + + * config/rs6000/vsx.md (vsx_load_): New expanders for + vec_vsx_ld and vec_vsx_st. + (vsx_store_): Ditto. + + * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type + variables to hold long long types for VSX vector memory builtins. + (RS6000_BTI_unsigned_long_long): Ditto. + (long_long_integer_type_internal_node): Ditti. + (long_long_unsigned_type_internal_node): Ditti. + + * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC. + (altivec_lvx_): Make altivec_lvx use a mode iterator. + (altivec_stvx_): Make altivec_stvx use a mode iterator. + + * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin + short cuts. + (vec_vsx_st): Ditto. + +2011-02-02 Joseph Myers + + * config/pa/pa-hpux10.opt: New. + * config/hpux11.opt (pthread): New Driver option. + * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options. + * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt. + +2011-02-02 Joseph Myers + + * config/ia64/vms.opt: New. + * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt. + +2011-02-01 Michael Meissner + + PR target/47580 + * config/rs6000/vsx.md (vsx_float2): Use + gpc_reg_operand instead of vsx_register_operand to match rs6000.md + generator functions. + (vsx_floatuns2): Ditto. + (vsx_fix_trunc2): Ditto. + (vsx_fixuns_trunc2): Ditto. + +2011-02-02 Joseph Myers + + * config/i386/djgpp.opt (posix): New Driver option. + +2011-02-02 Gerald Pfeifer + + * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*): + Move to the unsupported targets list. + +2011-02-02 Peter Bergner + + PR rtl-optimization/47525 + * df-scan.c: Update copyright years. + (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE + and non-clobber DF_REF_REG_DEF for calls to const and pure functions. + +2011-02-02 Rainer Orth + + * config/i386/sysv4.h (TARGET_VERSION): Remove. + (SUBTARGET_RETURN_IN_MEMORY): Remove. + (ASM_OUTPUT_ASCII): Remove. + * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef. + +2011-02-02 Jeff Law + + PR middle-end/47543 + * reload.c (find_reloads_address): Handle reg+d address where both + components are invalid by reloading the entire address. + +2011-02-02 Sebastian Pop + Richard Guenther + + PR tree-optimization/40979 + PR bootstrap/47044 + * passes.c (init_optimization_passes): After LIM call copy_prop + and DCE to clean up. + * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func. + +2011-02-02 Sebastian Pop + + PR tree-optimization/47576 + PR tree-optimization/47555 + * doc/invoke.texi (scev-max-expr-complexity): Documented. + * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. + (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared. + * tree-scalar-evolution.c (follow_ssa_edge): Use + PARAM_SCEV_MAX_EXPR_COMPLEXITY. + +2011-02-02 Richard Guenther + + PR tree-optimization/47566 + * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs. + +2011-02-02 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-inline.c (declare_return_variable): Remove unused caller + variable. + + PR debug/47106 + PR debug/47402 + * tree-flow-inline.h (clear_is_used, is_used_p): New. + * cfgexpand.c (account_used_vars_for_block): Use them. + * tree-nrv.c (tree_nrv): Likewise. + * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. + (dump_scope_block): Likewise. + (remove_unused_locals): Likewise. + + PR debug/47106 + PR debug/47402 + * tree-inline.c (declare_return_variable): Add result decl to + local decls only once. + * gimple-low.c (record_vars_into): Mark newly-created variables + as referenced. + +2011-02-02 Alexandre Oliva + + PR debug/47498 + PR debug/47501 + PR debug/45136 + PR debug/45130 + * haifa-sched.c (get_ebb_head_tail): Move notes across boundary + debug insns. + (no_real_insns_p, schedule_block, set_priorities): Drop special + treatment of boundary debug insns. + * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. + * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns. + * sched-int.h (DEBUG_INSN_SCHED_P): Remove. + (BOUNDARY_DEBUG_INSN_P): Likewise. + (SCHEDULE_DEBUG_INSN_P): Likewise. + * sched-rgn.c (init_ready_list): Drop special treatment of + boundary debug insns. + * final.c (rest_of_clean_state): Clear notes' BB. + +2011-02-01 Joseph Myers + + * config/openbsd.opt (assert=): New Driver option. + +2011-02-01 Joseph Myers + + * config/i386/nto.opt: New. + * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt. + +2011-02-01 Joseph Myers + + * config/i386/netware.opt: New. + * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt. + +2011-02-01 Joseph Myers + + * config/interix.opt (posix): New Driver option. + +2011-02-01 DJ Delorie + + * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition. + + * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg + class for A0/A1. + +2011-02-01 Sebastian Pop + + PR tree-optimization/47561 + * toplev.c (process_options): Print the Graphite flags. Add + flag_loop_flatten to the list of options requiring Graphite. + +2011-02-01 Joseph Myers + + * config/i386/cygming.opt (posix): New Driver option. + +2011-02-01 Joseph Myers + + * config/arm/vxworks.opt: New. + * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt. + +2011-02-01 Joseph Myers + + * config/alpha/elf.opt: New. + * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*, + alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt. + +2011-02-01 Richard Guenther + + PR tree-optimization/47559 + * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform + store-motion on references that can throw. + +2011-02-01 Bernd Schmidt + + * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB. + * tree-pass.h (TDF_CSELIB): New macro. + * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1, + cselib_lookup): Check for it rather than for TDF_DETAILS. + +2011-02-01 H.J. Lu + + PR driver/47547 + * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output + is HOST_BIT_BUCKET. + + * opts.c (finish_options): Don't add x_aux_base_name if it is + HOST_BIT_BUCKET. + +2011-02-01 Richard Guenther + + PR tree-optimization/47555 + Revert + 2010-07-15 Sebastian Pop + + * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. + +2011-02-01 Sebastien Bourdeauducq + + PR gcc/46692 + * config/lm32/t-lm32: Add multilib for all CPU options. + +2011-02-01 Richard Guenther + + PR tree-optimization/47541 + * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make + sure to have a field at offset zero. + +2011-01-31 Joseph Myers + + * config/arc/arc.opt (EB, EL): New Driver options. + +2011-01-31 Joseph Myers + + * config/alpha/osf5.opt: New. + * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt. + +2011-01-31 Joseph Myers + + * config/vms/vms.opt (map, mvms-return-codes): New Driver options. + +2011-01-31 Sebastian Pop + + * common.opt (ftree-loop-linear): Use Alias to make it an alias of + -floop-interchange. + * invoke.texi (-ftree-loop-linear): Make it clear that this flag + is an alias of -floop-interchange and that it requires the + Graphite infrastructure. + * tree-ssa-loop.c (gate_graphite_transforms): Do not set + flag_loop_interchange based on the value of flag_tree_loop_linear. + +2011-01-31 Jakub Jelinek + Richard Guenther + + PR tree-optimization/47538 + * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use + type instead of r1type, except for comparisons. For right + shifts and comparisons punt if there are mismatches in + sizetype vs. non-sizetype types. + +2011-01-31 Rainer Orth + + * doc/sourcebuild.texi (Effective-Target Keywords): Document + avx_runtime. + +2011-01-31 Rainer Orth + + * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld + version number. + * configure: Regenerate. + +2011-01-31 Rainer Orth + + * configure.ac (gcc_cv_ld_static_option): Define. + (gcc_cv_ld_dynamic_option): Define. + (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive + instead. + (HAVE_LD_STATIC_DYNAMIC): Update message. + (LD_STATIC_OPTION): Define. + (LD_DYNAMIC_OPTION): Define. + * configure: Regenerate. + * config.in: Regenerate. + * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS && + HAVE_LD_STATIC_DYNAMIC]: Use them. + +2011-01-31 Nick Clifton + + * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered + registers inside interrupt handlers if the handler is not a leaf + function. + +2011-01-31 Nick Clifton + + * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for + reg_renumber returning an INVALID_REGNUM. + +2011-01-31 Alexandre Oliva + + PR libgcj/44341 + * doc/install.texi: Document host options discarded when cross + configuring target libraries. + +2011-01-31 Alexandre Oliva + + Reverted: + 2011-01-25 Alexandre Oliva + PR debug/45136 + PR debug/45130 + * haifa-sched.c (get_ebb_head_tail): Move notes across boundary + debug insns. + (no_real_insns_p, schedule_block, set_priorities): Drop special + treatment of boundary debug insns. + * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. + * sched-ebb.c (schedule_ebbs): Don't skip debug insns. + * sched-int.h (DEBUG_INSN_SCHED_P): Remove. + (BOUNDARY_DEBUG_INSN_P): Likewise. + (SCHEDULE_DEBUG_INSN_P): Likewise. + * sched-rgn.c (init_ready_list): Drop special treatment of + boundary debug insns. + * final.c (rest_of_clean-state): Clear notes' BB. + +2011-01-31 Alan Modra + + * config/rs6000/rs6000.c (print_operand): Rearrange addends in + toc relative expressions as we do in print_operand_address. + +2011-01-30 Kazu Hirata + + * doc/extend.texi: Follow spelling conventions. + * doc/invoke.texi: Fix a typo. + +2011-01-30 Joseph Myers + + * config/hpux11.opt: New. + * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*, + ia64*-*-hpux*): Use hpux11.opt. + +2011-01-30 Jonathan Yong + + * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules + to tmake_file. + +2011-01-30 Gerald Pfeifer + + * doc/install.texi (hppa-hp-hpux10): Remove references to HP + support sites. + +2011-01-30 Gerald Pfeifer + + * doc/install.texi (Binaries): Remove outdated reference for + Motorola 68HC11/68HC12 downloads. + +2011-01-30 Gerald Pfeifer + + * doc/extend.texi (Thread-Local): Adjust reference to Ulrich + Drepper's paper. + +2011-01-29 Jonathan Wakely + + PR bootstrap/47147 + * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as + used by NetBSD. + +2011-01-28 Ahmad Sharif + + * value-prof.c (check_counter): Corrected error message. + +2011-01-29 Jie Zhang + + * config/arm/arm.c (arm_legitimize_reload_address): New. + * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use + arm_legitimize_reload_address. + * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare. + +2011-01-28 Ian Lance Taylor + + * godump.c (go_define): Ignore macros whose definitions include + two adjacent operands. + +2011-01-28 Jakub Jelinek + + PR target/42894 + * varasm.c (force_const_mem): Store copy of x in desc->constant + instead of x itself. + * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst + itself into REG_EQUAL note. + +2011-01-28 Joseph Myers + + * config/freebsd.opt (posix, rdynamic): New Driver options. + +2011-01-28 Rainer Orth + + * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports + -Bstatic/-Bdynamic. + * configure: Regenerate. + +2011-01-27 Joseph Myers + + * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile. + * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile. + +2011-01-27 Anatoly Sokolov + + * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove. + * config/s390/s390-protos.h (s390_preferred_reload_class): Remove. + * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define. + (s390_preferred_reload_class): Make static. Change return and + 'rclass' argument type to reg_class_t. + +2011-01-27 Jan Hubicka + + PR middle-end/46949 + * cgraphunit.c (process_common_attributes): Fix use of remove_attribute. + (process_function_and_variable_attributes): Check defined weakrefs. + +2011-01-27 Martin Jambor + + PR tree-optimization/47228 + * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of + build_ref_for_offset. + +2011-01-27 Ulrich Weigand + + * config/spu/spu-elf.h (ASM_SPEC): Remove. + +2011-01-26 Mikael Pettersson + + PR rtl-optimization/46856 + * postreload.c (reload_combine_recognize_const_pattern): Do not + separate cc0 setter and user on cc0 targets. + +2011-01-26 Nicola Pero + + PR c/43082 + * c-typeck.c (c_objc_common_truthvalue_conversion): If we are + passed a VOID_TYPE expression, immediately emit an error and + return error_mark_node. + +2011-01-26 Jeff Law + + PR rtl-optimization/47464 + * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p + rather than may_trap_p as needed. + +2011-01-26 DJ Delorie + + PR rtl-optimization/46878 + * combine.c (insn_a_feeds_b): Check for the implicit cc0 + setter/user dependency as well. + +2011-01-26 Eric Botcazou + + PR rtl-optimization/44469 + * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too + after removing trivially dead basic blocks. + +2011-01-26 Joseph Myers + + * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}. + * config/frv/frv.h (LINK_SPEC): Likewise. + * config/i386/netware.h (LINK_SPEC): Likewise. + * config/m68k/linux.h (ASM_SPEC): Likewise. + * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise. + * config/rs6000/sysv4.h (LINK_SPEC): Likewise. + * config/rs6000/vxworks.h (ASM_SPEC): Likewise. + * config/sparc/linux.h (ASM_SPEC): Likewise. + * config/sparc/linux64.h (ASM_SPEC): Likewise. + * config/sparc/sp-elf.h (ASM_SPEC): Likewise. + +2011-01-26 Joseph Myers + + * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}. + * config/frv/frv.h (ASM_SPEC): Likewise. + * config/m68k/linux.h (ASM_SPEC): Likewise. + * config/pa/pa-linux.h (ASM_SPEC): Likewise. + * config/rs6000/linux64.h (ASM_SPEC): Likewise. + * config/rs6000/vxworks.h (ASM_SPEC): Likewise. + * config/sparc/linux.h (ASM_SPEC): Likewise. + * config/sparc/linux64.h (ASM_SPEC): Likewise. + * config/sparc/sp-elf.h (ASM_SPEC): Likewise. + +2011-01-26 Joseph Myers + + * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}. + * config/frv/frv.h (LINK_SPEC): Likewise. + * config/rs6000/sysv4.h (LINK_SPEC): Likewise. + +2011-01-26 Joseph Myers + + * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}. + * config/frv/frv.h (ASM_SPEC): Likewise. + * config/i386/sol2-10.h (ASM_SPEC): Likewise. + * config/m68k/linux.h (ASM_SPEC): Likewise. + * config/pa/pa-linux.h (ASM_SPEC): Likewise. + * config/rs6000/linux64.h (ASM_SPEC32): Likewise. + * config/rs6000/vxworks.h (ASM_SPEC): Likewise. + * config/sol2.h (ASM_SPEC): Remove comment about -Yd,. + * config/sparc/linux.h (ASM_SPEC): Likewise. + * config/sparc/linux64.h (ASM_SPEC): Likewise. + * config/sparc/sp-elf.h (ASM_SPEC): Likewise. + * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}. + +2011-01-26 Steve Ellcey + + PR target/46997 + * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN. + (*mux2): Ditto. + (vec_extract_evenodd_help): Ditto. + (vec_extract_evenv4hi): Ditto. + (vec_extract_oddv4hi): Ditto. + (vec_interleave_lowv2si): Ditto. + (vec_interleave_highv2si): Ditto. + (vec_extract_evenv2si): Ditto. + (vec_extract_oddv2si: Ditto. + (vec_pack_trunc_v2si): Ditto. + +2011-01-22 Jan Hubicka + + PR target/47237 + * cgraph.h (cgraph_local_info): New field can_change_signature. + * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee + signature can change. + (ipcp_estimate_growth): Call sequence simplify only if calle signature + can change. + (ipcp_insert_stage): Only compute args_to_skip if signature can change. + (cgraph_function_versioning): We can not change signature of functions + that don't allow that. + * lto-cgraph.c (lto_output_node): Stream local.can_change_signature. + (lto_input_node): Likewise. + * ipa-inline.c (compute_inline_parameters): Compute + local.can_change_signature. + * ipa-split.c (visit_bb): Never split away APPLY_ARGS. + * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on + functions that can not change signature. + * i386.c (ix86_function_regparm, ix86_function_sseregparm, + init_cumulative_args): Do not use local calling conventions + for functions that can not change signature. + +2011-01-22 Jan Hubicka + + * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk. + +2011-01-26 Richard Guenther + + PR tree-optimization/47190 + * cgraphunit.c (process_common_attributes): New function. + (process_function_and_variable_attributes): Use it. + +2011-01-26 Richard Guenther + + PR lto/47423 + * cgraphbuild.c (record_eh_tables): Record reference to personality + function. + +2011-01-26 Alexandre Oliva + + PR debug/45454 + * sel-sched.c (moveup_expr): Don't let debug insns prevent + non-debug insns from moving up. + +2011-01-26 Dave Korn + + PR target/40125 + * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable + t-dlldir{,-x} fragment for build and add it to tmake_file. + (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise. + * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc. + * config/i386/t-dlldir: New file. + (SHLIB_DLLDIR): Define. + * config/i386/t-dlldir-x: New file. + (SHLIB_DLLDIR): Define. + * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set. + (SHLIB_INSTALL): Use it. + +2011-01-26 Chung-Lin Tang + + PR target/47246 + * config/arm/arm.c (thumb2_legitimate_index_p): Change the + lower bound of the allowed Thumb-2 coprocessor load/store + index range to -256. Add explaining comment. + +2011-01-25 Ian Lance Taylor + + * godump.c (go_define): Improve lexing of macro expansion to only + accept expressions which match Go spec. + +2011-01-26 Dave Korn + + PR c++/43601 + * tree.c (handle_dll_attribute): Handle it. + * doc/extend.texi (@item dllexport): Mention it. + * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it. + +2011-01-25 Ian Lance Taylor + + PR tree-optimization/26854 + * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl. + (decl_jump_unsafe): Move higher in file, with no other change. + (bind): Set has_jump_unsafe_decl if appropriate. + (update_label_decls): Test has_jump_unsafe_decl to avoid loop. + (check_earlier_gotos): Likewise. + (c_check_switch_jump_warnings): Likewise. + +2011-01-25 Jonathan Wakely + + * doc/invoke.texi (Warning Options): Add missing hyphen. + (-fprofile-dir): Minor grammatical fixes. + (-fbranch-probabilities): Likewise. + +2011-01-25 Alexandre Oliva + + PR debug/45136 + PR debug/45130 + * haifa-sched.c (get_ebb_head_tail): Move notes across boundary + debug insns. + (no_real_insns_p, schedule_block, set_priorities): Drop special + treatment of boundary debug insns. + * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. + * sched-ebb.c (schedule_ebbs): Don't skip debug insns. + * sched-int.h (DEBUG_INSN_SCHED_P): Remove. + (BOUNDARY_DEBUG_INSN_P): Likewise. + (SCHEDULE_DEBUG_INSN_P): Likewise. + * sched-rgn.c (init_ready_list): Drop special treatment of + boundary debug insns. + * final.c (rest_of_clean-state): Clear notes' BB. + +2011-01-25 Sebastian Pop + + * Makefile.in (LAMBDA_H): Removed. + (TREE_DATA_REF_H): Remove dependence on LAMBDA_H. + (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o, + lambda-trans.o, and tree-loop-linear.o. + (lto-symtab.o): Remove dependence on LAMBDA_H. + (tree-loop-linear.o): Remove rule. + (lambda-mat.o): Same. + (lambda-trans.o): Same. + (lambda-code.o): Same. + (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H. + (tree-vect-slp.o): Same. + * hwint.h (gcd): Moved here. + (least_common_multiple): Same. + * lambda-code.c: Removed. + * lambda-mat.c: Removed. + * lambda-trans.c: Removed. + * lambda.h: Removed. + * tree-loop-linear.c: Removed. + * lto-symtab.c: Do not include lambda.h. + * omega.c (gcd): Removed. + * passes.c (init_optimization_passes): Remove pass_linear_transform. + * tree-data-ref.c (print_lambda_vector): Moved here. + (lambda_vector_copy): Same. + (lambda_matrix_copy): Same. + (lambda_matrix_id): Same. + (lambda_vector_first_nz): Same. + (lambda_matrix_row_add): Same. + (lambda_matrix_row_exchange): Same. + (lambda_vector_mult_const): Same. + (lambda_vector_negate): Same. + (lambda_matrix_row_negate): Same. + (lambda_vector_equal): Same. + (lambda_matrix_right_hermite): Same. + * tree-data-ref.h: Do not include lambda.h. + (lambda_vector): Moved here. + (lambda_matrix): Same. + (dependence_level): Same. + (lambda_transform_legal_p): Removed declaration. + (lambda_collect_parameters): Same. + (lambda_compute_access_matrices): Same. + (lambda_vector_gcd): Same. + (lambda_vector_new): Same. + (lambda_vector_clear): Same. + (lambda_vector_lexico_pos): Same. + (lambda_vector_zerop): Same. + (lambda_matrix_new): Same. + * tree-flow.h (least_common_multiple): Removed declaration. + * tree-parloops.c (lambda_trans_matrix): Moved here. + (LTM_MATRIX): Same. + (LTM_ROWSIZE): Same. + (LTM_COLSIZE): Same. + (LTM_DENOMINATOR): Same. + (lambda_trans_matrix_new): Same. + (lambda_matrix_vector_mult): Same. + (lambda_transform_legal_p): Same. + * tree-pass.h (pass_linear_transform): Removed declaration. + * tree-ssa-loop.c (tree_linear_transform): Removed. + (gate_tree_linear_transform): Removed. + (pass_linear_transform): Removed. + (gate_graphite_transforms): Make flag_tree_loop_linear an alias of + flag_loop_interchange. + +2011-01-25 Jakub Jelinek + + PR tree-optimization/47265 + PR tree-optimization/47443 + * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false + if name still has some uses. + +2011-01-25 Martin Jambor + + PR tree-optimization/47382 + * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed. + (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call. + +2011-01-25 Joel Sherrill + + * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to + sjlj_except_unwind_info. + +2011-01-25 Richard Guenther + + PR tree-optimization/47426 + * tree-ssa-structalias.c (ipa_pta_execute): Make externally + visible functions results escape. + +2011-01-25 Jakub Jelinek + + PR target/45701 + * config/arm/arm.c (any_sibcall_uses_r3): New function. + (arm_get_frame_offsets): Use it. + +2011-01-25 Sebastian Pop + Jakub Jelinek + + PR tree-optimization/47271 + * tree-if-conv.c (bb_postdominates_preds): New. + (if_convertible_bb_p): Call bb_postdominates_preds. + (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS. + (predicate_scalar_phi): Call bb_postdominates_preds. + +2011-01-25 Nick Clifton + + * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types. + * config/rx/rx.c (rx_function_value): Likewise. + (rx_promote_function_mode): Likewise. + (gen_safe_add): Place an outsized immediate value inside an UNSPEC + in order to make it legitimate. + * config/rx/rx.md (adddi3_internal): If the second operand is a MEM + make sure that the first operand is the same as the result register. + (addsi3_unspec): Delete. + (subdi3): Do not accept immediate operands. + (subdi3_internal): Likewise. + +2011-01-25 Jeff Law + + PR rtl-optimization/37273 + * ira-costs.c (scan_one_insn): Detect constants living in memory and + handle them like argument loads from stack slots. Do not double + count memory for memory constants and argument loads from stack slots. + +2011-01-25 Jakub Jelinek + + PR tree-optimization/47427 + PR tree-optimization/47428 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't + coalesce if the new root var would be TREE_READONLY. + +2011-01-25 Richard Guenther + + PR middle-end/47414 + * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the + correct type for TBAA. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New. + (close_phi_written_to_memory): Call for_each_index with + dr_indices_valid_in_loop. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN + when it is initialized. + +2011-01-25 Sebastian Pop + + * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update + call to graphite_find_data_references_in_stmt. + * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New. + (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update + call to graphite_find_data_references_in_stmt. + (analyze_drs_in_stmts): Same. + * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop + in which the scalar analysis of indices is performed. + (create_data_ref): Same. Update call to dr_analyze_indices. + (find_data_references_in_stmt): Update call to create_data_ref. + (graphite_find_data_references_in_stmt): Same. + * tree-data-ref.h (graphite_find_data_references_in_stmt): Update + declaration. + (create_data_ref): Same. + * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update + call to create_data_ref. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c (build_poly_scop): Move + rewrite_commutative_reductions_out_of_ssa before find_scop_parameters. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow + VAR_DECL, PARM_DECL, and RESULT_DECL. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (reduction_dr_1): Allow several reductions + in a reduction PBB. + * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs + that have already been marked as PBB_IS_REDUCTION. + +2011-01-25 Sebastian Pop + + * graphite-scop-detection.c (same_close_phi_node): New. + (remove_duplicate_close_phi): New. + (make_close_phi_nodes_unique): New. + (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (new_poly_ddr): Call same_pdr_p. + * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE + of both data references to be the same. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (build_lexicographical_constraint): Remove + the gdim parameter. + (build_lexicographical_constraint): Adjust call to + ppl_powerset_is_empty. + (dependence_polyhedron): Same. + (graphite_legal_transform_dr): Same. + (graphite_carried_dependence_level_k): Same. + * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params + parameter. + * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c + (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr. + (close_phi_written_to_memory): New. + (translate_scalar_reduction_to_array): Call close_phi_written_to_memory + and unshare_expr. + +2011-01-25 Sebastian Pop + + * doc/install.texi: Update the expected version number of PPL to 0.11. + * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under + #if PPL_VERSION_MINOR < 11. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c: Include graphite-cloog-util.h. + (new_poly_ddr): Inlined into dependence_polyhedron. + (free_poly_ddr): Moved close by new_poly_ddr. + (dependence_polyhedron_1): Renamed dependence_polyhedron. + Early return NULL when ppl_powerset_is_empty returns true. + (dependence_polyhedron): Renamed new_poly_ddr. Call only once + poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty. + (graphite_legal_transform_dr): Call new_poly_ddr. + (graphite_carried_dependence_level_k): Same. + (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr. + (dot_transformed_deps_stmt_1): Removed. + (dot_deps_stmt_1): Call dot_deps_stmt_2. + (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr. + (dot_deps_1): Call dot_deps_2. + * Makefile.in (graphite-dependences.o): Add missing dependence on + graphite-cloog-util.h. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty. + (build_lexicographical_constraint): Same. + (dependence_polyhedron_1): Same. + (graphite_legal_transform_dr): Same. + (graphite_carried_dependence_level_k): Same. + * graphite-ppl.c (ppl_powerset_is_empty): New. + * graphite-ppl.h (ppl_powerset_is_empty): Declared. + * tree-data-ref.c (dump_data_reference): Print the basic block index. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (build_pairwise_scheduling): Correctly compute + the "a followed by b" relation and document it. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (build_lexicographical_constraint): Stop the + iteration when the bag of constraints is empty. + +2011-01-25 Sebastian Pop + + * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. + +2011-01-25 Sebastian Pop + + * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop + nest and two loop depths as parameters. + (lst_try_interchange_loops): Call lst_interchange_profitable_p after + lst_perfect_nestify. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (print_pddr): Call + ppl_io_fprint_Pointset_Powerset_C_Polyhedron. + +2011-01-25 Sebastian Pop + + * graphite-ppl.c (debug_gmp_value): New. + * graphite-ppl.h (debug_gmp_value): Declared. + +2011-01-25 Tobias Grosser + + * doc/install.texi: Document availability of cloog-0.16. + +2011-01-25 Vladimir Kargov + + * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free + invalid postdominance info. + +2011-01-24 Jan Hubicka + + PR c/21659 + * doc/extend.texi (weak pragma): Drop claim that it must + appear before definition. + * varasm.c (merge_weak, declare_weak): Only sanity check + that DECL is not output at a time it is declared weak. + +2011-01-24 Kenneth Zadeck + + * machmode.def: Fixed comments. + +2011-01-24 Kai Tietz + + * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t. + +2011-01-24 Paul Koning + + * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN != + WORDS_BIG_ENDIAN. + +2011-01-24 H.J. Lu + + PR target/46519 + * config/i386/i386.c: Include sbitmap.h and fibheap.h. + (block_info): Add scanned and prev. + (move_or_delete_vzeroupper_2): Return if the basic block + has been scanned and the upper 128bit state is unchanged + from the last scan. + (move_or_delete_vzeroupper_1): Return true if the exit + state is changed. + (move_or_delete_vzeroupper): Visit basic blocks using the + work-list based algorithm based on vt_find_locations in + var-tracking.c. + + * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H). + +2011-01-24 Nick Clifton + + * config/v850/v850.opt (mv850es): New option - alias for -mv850e1. + * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass + -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified + then define __v850e1__. + * doc/invoke.texi: Document -mv850es. + +2011-01-24 Richard Henderson + + * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept + compound unordered comparisons. + * config/rx/rx.c (rx_split_fp_compare): Remove. + * config/rx/rx-protos.h: Update. + * config/rx/rx.md (gcc_conds, rx_conds): Remove. + (cbranchsf4): Don't call rx_split_fp_compare. + (*cbranchsf4): Use rx_split_cbranch. + (*cmpsf): Don't accept "i" constraint. + (*conditional_branch): Only valid after reload. + (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare. + +2011-01-24 Michael Meissner + + PR target/47385 + * config/rs6000/altivec.md (vector constant splitters): Add + support for creating vector single precision constants if -mvsx is + used and we would create the constant using Altivec primitives. + +2011-01-23 Bernd Schmidt + Richard Sandiford + + PR rtl-optimization/47166 + * reload1.c (emit_reload_insns): Disable the spill_reg_store + mechanism for PRE_MODIFY and POST_MODIFY. + (inc_for_reload): For PRE_MODIFY, return the insn that sets the + reloadreg. + +2011-01-23 Andreas Schwab + + * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers. + +2011-01-22 Jan Hubicka + + PR lto/47333 + * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto. + +2011-01-22 Jan Hubicka + + PR tree-optimization/43884 + PR lto/44334 + * predict.c (maybe_hot_frequency_p): Use entry block frequency as base. + * doc/invoke.texi (hot-bb-frequency-fraction): Update docs. + +2011-01-22 Anatoly Sokolov + + * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. + * config/s390/s390.c (s390_register_move_cost, + s390_memory_move_cost): New. + (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. + +2011-01-22 Ulrich Weigand + + PR middle-end/47401 + * except.c (sjlj_assign_call_site_values): Move setting the + crtl->uses_eh_lsda flag to ... + (sjlj_mark_call_sites): ... here. + (sjlj_emit_function_enter): Support NULL dispatch label. + (sjlj_build_landing_pads): In a function with no landing pads + that still has must-not-throw regions, generate code to register + a personality function with empty LSDA. + +2011-01-21 Richard Henderson + + * config/rx/rx.c (TARGET_FLAGS_REGNUM): New. + + * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New. + + * compare-elim.c: New file. + * Makefile.in (OBJS-common): Add it. + (compare-elim.o): New. + * common.opt (fcompare-elim): New. + * opts.c (default_options_table): Add OPT_fcompare_elim. + * tree-pass.h (pass_compare_elim_after_reload): New. + * passes.c (init_optimization_passes): Add it. + * recog.h: Protect against re-inclusion. + * target.def (TARGET_FLAGS_REGNUM): New POD hook. + * doc/invoke.texi (-fcompare-elim): Document it. + * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it. + * doc/tm.texi: Rebuild. + +2011-01-22 Nick Clifton + + * config/rx/rx.md (cstoresf4): Pass comparison operator to + rx_split_fp_compare. + +2011-01-22 Nick Clifton + + * config/rx/rx.md (UNSPEC_CONST): New. + (deallocate_and_return): Wrap the amount popped off the stack in + an UNSPEC_CONST in order to stop it being rejected by + -mmax-constant-size. + (pop_and_return): Add a "(return)" rtx. + (call): Drop the immediate operand. + (call_internal): Likewise. + (call_value): Likewise. + (call_value_internal): Likewise. + (sibcall_internal): Likewise. + (sibcall_value_internal): Likewise. + (sibcall): Likewise. Generate an explicit call using + sibcall_internal. + (sibcall_value): Likewise. + (mov<>): FAIL if a constant operand is not legitimate. + (addsi3_unpsec): New pattern. + + * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs. + (ok_for_max_constant): New function. + (gen_safe_add): New function. + (rx_expand_prologue): Use gen_safe_add. + (rx_expand_epilogue): Likewise. + (rx_is_legitimate_constant): Use ok_for_max_constant. Handle + UNSPEC CONSTs. + +2011-01-21 Jeff Law + + PR tree-optimization/47053 + * tree-ssa-dse.c (need_eh_cleanup): New bitmap. + (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when + statements are deleted. + (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP + is nonempty, then purge dead edges and cleanup the CFG. + +2011-01-21 Alexandre Oliva + + PR debug/47402 + Temporarily revert: + 2011-01-21 Alexandre Oliva + PR debug/47106 + * tree-dfa.c (create_var_ann): Mark variable as used. + +2011-01-21 Jakub Jelinek + + PR middle-end/45566 + * except.c (convert_to_eh_region_ranges): Emit queued no-region + notes from other section in hot/cold partitioning even if + last_action is -3. Increment call_site_base. + + PR rtl-optimization/47366 + * fwprop.c (forward_propagate_into): Return bool. If + any changes are made, -fnon-call-exceptions is used and + REG_EH_REGION note is present, call purge_dead_edges + and return true if it purged anything. + (fwprop_addr): Adjust callers, call cleanup_cfg (0) if + any EH edges were purged. + +2011-01-21 Jeff Law + + PR rtl-optimization/41619 + * caller-save.c (setup_save_areas): Break out code to determine + which hard regs are live across calls by examining the reload chains + so that it is always used. + Eliminate code which checked REG_N_CALLS_CROSSED. + +2011-01-21 Jakub Jelinek + + PR tree-optimization/47355 + * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if + NOP has non-debug uses beyond PHIs in new_bb. + +2011-01-21 Alexandre Oliva + + PR debug/47106 + * cfgexpand.c (account_used_vars_for_block): Only account vars + that are annotated as used. + (estimated_stack_frame_size): Don't set TREE_USED. + * tree-dfa.c (create_var_ann): Mark variable as used. + +2011-01-21 Richard Guenther + + PR middle-end/47395 + * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name. + +2011-01-21 Richard Guenther + + PR tree-optimization/47365 + * tree-ssa-sccvn.h (vn_lookup_kind): Declare. + (vn_reference_lookup_pieces): Adjust. + (vn_reference_lookup): Likewise. + * tree-ssa-sccvn.c (vn_walk_kind): New static global. + (vn_reference_lookup_3): Only look through kills if in + VN_WALKREWRITE mode. + (vn_reference_lookup_pieces): Adjust. + (vn_reference_lookup): Likewise. + (visit_reference_op_load): Likewise. + (visit_reference_op_store): Likewise. + * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode. + (compute_avail): Likewise. + (eliminate): Likewise. + +2011-01-21 Jakub Jelinek + + * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove + DECL_IGNORED_P non-reg vars if they are used. + + PR tree-optimization/47391 + * varpool.c (const_value_known_p): Return false if + decl is volatile. + +2011-01-21 Kai Tietz + + PR bootstrap/47215 + * config/i386/i386.c (ix86_local_alignment): Handle + case for va_list_type_node is nil. + (ix86_canonical_va_list_type): Likewise. + +2011-01-21 Alan Modra + + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add + builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__. + +2011-01-20 Ramana Radhakrishnan + + * config/arm/arm.md (define_attr type): Rename f_load + and f_store to f_fpa_load and f_fpa_store. Update. + (write_conflict): Deal with rename fallout. + (*push_fp_multi): Likewise. + * config/arm/fpa.md (f_load): Use f_fpa_load. + (f_store): Use f_fpa_store. + (*movsf_fpa): Likewise. + (*movdf_fpa): Likewise. + (*movxf_fpa): Likewise. + (*thumb2_movsf_fpa): Likewise. + (*thumb2_movdf_fpa): Likewise. + (*thumb2_movxf_fpa): Likewise. + * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to + f_loadd and f_stored. + (*thumb2_movdi_vfp): Likewise. + (*thumb2_movsf_vfp): Fix attribute to f_loads. + (*thumb2_movsi_vfp): Likewise. + * config/arm/cortex-m4-fpu.md (cortex_m4_f_load): + Use f_loads instead of f_load. + * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load. + +2011-01-20 Anatoly Sokolov + + * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. + * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove. + * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + (xtensa_mode_dependent_address_p): New function. + (constantpool_address_p): Make static. Change return type to bool. + Change argument type to const_rtx. Use CONST_INT_P predicate. + +2011-01-20 Alexandre Oliva + + PR debug/46583 + * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls. + +2011-01-20 Jakub Jelinek + + PR debug/47283 + * cfgexpand.c (expand_debug_expr): Instead of generating + (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF + etc. handling. + +2011-01-20 Richard Guenther + + PR middle-end/47370 + * tree-inline.c (remap_gimple_op_r): Recurse manually for + the pointer operand of MEM_REFs. + +2011-01-20 Jakub Jelinek + + PR tree-optimization/46130 + * ipa-split.c (consider_split): If return_bb contains non-virtual + PHIs other than for retval or if split_function would not adjust it, + refuse to split. + +2011-01-20 Richard Guenther + + PR tree-optimization/47167 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Revert previous change, only avoid enumeral type changes. + +2011-01-19 Mike Stump + + * doc/tm.texi.in (BRANCH_COST): Englishify. + * doc/tm.texi (BRANCH_COST): Likewise. + +2011-01-19 Dodji Seketeli + + PR c++/47291 + * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen) + (gen_scheduled_generic_parms_dies): New functions. + (gen_struct_or_union_type_die): Schedule template parameters DIEs + generation for the end of CU compilation. + (dwarf2out_finish): Generate template parameters DIEs here. + +2011-01-19 Alexandre Oliva + + PR debug/46240 + * tree-into-ssa.c (maybe_register_def): Do not attempt to add + debug bind stmt on merge edges. + +2011-01-19 Alexandre Oliva + + PR debug/47079 + PR debug/46724 + * function.c (instantiate_expr): Instantiate incoming rtl of + implicit arguments, and recurse on VALUE_EXPRs. + (instantiate_decls): Instantiate rtl and VALUE_EXPR of result. + * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx. + +2011-01-19 Alexandre Oliva + + * c-parser.c (c_parser_for_statement): Initialize + collection_expression. + +2011-01-19 Joseph Myers + + * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}. + +2011-01-19 Joseph Myers + + * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove. + (LINK_SHLIB_SPEC): Don't use %(link_path). + (SUBTARGET_EXTRA_SPECS): Remove link_path. + +2011-01-19 Joseph Myers + + * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional. + (NO_SHARED_LIB_SUPPORT): Remove. + (LINK_SHLIB_SPEC): Remove one conditional definition. + +2011-01-19 Joseph Myers + + * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared} + %{call_shared}. + * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}. + * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}. + * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared} + %{call_shared} and conditionals on these options not being passed. + * config/mips/sde.h (LINK_SPEC): Remove %{non_shared} + %{call_shared}. + +2011-01-19 Jakub Jelinek + + * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge, + simplify. + + * ipa-split.c: Spelling fixes. + +2011-01-19 Richard Henderson + + * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand. + (*mulsi3): Likewise. + + * longlong.h [__mn10300__] (count_leading_zeros): New. + [__mn10300__] (umul_ppmm, smul_ppmm): New. + [__mn10300__] (add_ssaaaa, subddmmss): New. + [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New. + [__mn10300__] (UMUL_TIME, UDIV_TIME): New. + +2011-01-19 Ulrich Weigand + + * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case. + +2011-01-19 Richard Henderson + + * config/mn10300/mn10300.md (addsi3_flags): New. + (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New. + (subsi3_flags, subc_internal, subdi3): New. + (subdi3_internal, *subdi3_degenerate): New. + * config/mn10300/predicates.md (reg_or_am33_const_operand): New. + + * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New. + (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn. + (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn. + (return_ret): Likewise. Rename from return_internal_regs. + (return_internal): Remove. + + * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove. + (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL. + (mn10300_legitimate_constant_p): Likewise. + (mn10300_can_use_return_insn): Use mn10300_initial_offset. + (mn10300_frame_size): New. + (mn10300_expand_prologue): Use it. + (mn10300_expand_epilogue): Likewise. + (mn10300_initial_offset): Likewise. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove. + * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove. + (prologue, epilogue, return_internal): Tidy output code. + (mn10300_store_multiple_operation, return): Likewise. + (int_label, pop_pic_reg, GOTaddr2picreg): Remove. + (am33_loadPC, mn10300_loadPC, call_next_insn): Remove. + (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove. + (load_pic, am33_load_pic): New. + (mn10300_load_pic0, mn10300_load_pic1): New. + + * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes. + * config/mn10300/mn10300.c (CC_FLAG_Z): New. + (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New. + (cc_flags_for_mode, cc_flags_for_code): New. + (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the + overflow flag is not valid. Validate that the flags we need + for the comparison are valid. + (mn10300_output_cmp): Remove. + (mn10300_output_add): New. + (mn10300_select_cc_mode): Use cc_flags_for_code. + (mn10300_split_cbranch): New. + (mn10300_match_ccmode): New. + (mn10300_split_and_operand_count): New. + * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments + to the function. + * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge... + (addsi3): ... here. Use mn10300_output_add. + (*addsi3_flags): New. + (*am33_subsi3, *mn10300_subsi3): Merge... + (subsi3): ... here. Use attribute isa. + (*subsi3_flags): New. + (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC + when possible. + (*am33_andsi3, *mn10300_andsi3): Merge... + (andsi3): ... here. + (*andsi3_flags): New. + (andsi3 splitters): New. + (*am33_iorsi3, *mn10300_iorsi3): Merge... + (iorsi3): ... here. + (*iorsi3_flags): New. + (*am33_xorsi3, *mn10300_xorsi3): Merge... + (xorsi3): ... here. + (*xorsi3_flags): New. + (*am33_cmpsi2, *mn10300_cmplsi2): Merge... + (one_cmplsi2): ... here. + (*one_cmplsi2_flags): New. + (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r" + instead of "dax" in constraints. Use mn10300_split_cbranch. + (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not + use matching constraints to eliminate a self-comparison. + (*integer_conditional_branch): Rename from integer_conditional_branch. + Use int_mode_flags to match CC_REG. + (*cbranchsi4_btst, *btstsi): New. + (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use + mn10300_split_cbranch. + (*am33_cmpsf): Rename from am33_cmpsf. + (*float_conditional_branch): Rename from float_conditional_branch. + (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge... + (zero_extendqisi2): ... here. + (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge... + (zero_extendhisi2): ... here. + (*extendqisi2_am33, *extendqisi2_mn10300): Merge... + (extendqisi2): ... here. + (*extendhisi2_am33, *extendhisi2_mn10300): Merge... + (extendhisi2): ... here. + (*am33_ashlsi3, *mn10300_ashlsi3): Merge... + (ashlsi3): ... here. + (*am33_lshrsi3, *mn10300_lshrsi3): Merge... + (lshrsi3): ... here. + (*am33_ashrisi3, *mn10300_ashrsi3): Merge... + (ashrsi3): ... here. + (consecutive add peephole): Remove. + * config/mn10300/predicates.md (label_ref_operand): New. + (int_mode_flags): New. + (CCZN_comparison_operator): New. + + * config/mn10300/mn10300.md (UNSPEC_EXT): New. + (throughput_42_latency_43): New reservation. + (mulsidi3, umulsidi3): New expanders. + (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose + the MDR register to allocation; separately allocate the low and + high parts of the DImode result. + (umulsidi3_internal): Similarly. + (*am33_mulsi3, *mn10300_mulsi3): Merge into ... + (*mulsi3): ... here. Clobber MDR as a scratch as necessary. + (udivsi3, umodsi3): Remove. + (udivmodsi4, divmodsi4): New expanders. + (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly. + (*divmodsi4): Simiarly. + (ext_internal): New. + + * config/mn10300/constraints.md ("z"): New constraint. + * config/mn10300/mn10300.h (MDR_REGNUM): Remove. + (FIXED_REGISTERS): Don't fix MDR. + (CALL_USED_REGSITERS): Reformat nicely. + (REG_ALLOC_ORDER): Add MDR. + (enum regclass): Add MDR_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match. + (IRA_COVER_CLASSES): Add MDR_REGS. + (REGNO_REG_CLASS): Handle MDR_REG. + * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS. + (mn10300_register_move_cost): Likewise. + * config/mn10300/mn10300.md (MDR_REG): New. + (*movsi_internal): Handle moves to/from MDR_REGS. + + * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle + POST_MODIFY. + (mn10300_secondary_reload): Tidy combination reload classes. + (mn10300_legitimate_address_p): Allow post-modify and reg+reg + addresses for AM33. Allow symbolic offsets for reg+imm. + (mn10300_regno_in_class_p): New. + (mn10300_legitimize_reload_address): New. + * config/mn10300/mn10300.h (enum reg_class): Remove + DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS, + SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add + SP_OR_GENERAL_REGS. + (REG_CLASS_NAMES): Update to match. + (REG_CLASS_CONTENTS): Likewise. + (INDEX_REG_CLASS): Use GENERAL_REGS for AM33. + (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33. + (REGNO_IN_RANGE_P): Remove. + (REGNO_DATA_P): Use mn10300_regno_in_class_p. + (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise. + (REGNO_STRICT_OK_FOR_BASE_P): Likewise. + (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise. + (REGNO_STRICT_OK_FOR_INDEX_P): Likewise. + (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove. + (REGNO_GENERAL_P): New. + (HAVE_POST_MODIFY_DISP): New. + (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New. + (LEGITIMIZE_RELOAD_ADDRESS): New. + * config/mn10300/mn10300-protos.h: Update. + + * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow + DATA_REGS for AM33 stack-pointer destination. + (mn10300_preferred_output_reload_class): Likewise. + (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class + into a form appropriate for ... + (TARGET_SECONDARY_RELOAD): New. + * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from + reload_insi; use the "A" constraint for the scratch; handle AM33 + moves of sp to non-address registers. + + * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into + (*movqi_internal): ... here. + (*am33_movhi, *mn10300_movhi): Merge into... + (*movhi_internal): ... here. + (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A" + as the source/destination of moves from/to SP. + (movsf): Only allow for AM33-2. + (*movsf_internal): Use "r" instead of "dax"; use "F" instead of + any integer constant constraint. Only allow for AM33-2. Tidy + all of the alternative outputs. + (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove. + (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow + for MN103. + (udivsi3, umodsi3): New patterns for MN103 only. + +2011-01-19 Joern Rennecke + + * doc/tm.texi.in: Spell out that a lack of register class unions + can lead to ICEs. + * doc/tm.texi: Regenerate. + +2011-01-19 Jakub Jelinek + + PR rtl-optimization/47337 + * dce.c (check_argument_store): New function. + (find_call_stack_args): Ignore debug insns. Use check_argument_store. + + PR tree-optimization/47290 + * tree-eh.c (infinite_empty_loop_p): New function. + (cleanup_empty_eh): Use it. + +2011-01-18 Steve Ellcey + + PR target/46997 + * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN. + (a64_expand_widen_sum): Ditto. + * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN. + (vec_extract_evenodd_help): Ditto. + (vec_extract_evenv4hi): Ditto. + (vec_extract_oddv4hi): Ditto. + (vec_extract_evenv2si): Ditto. + (vec_extract_oddv2si): Ditto. + (vec_extract_evenv2sf): Ditto. + (vec_extract_oddv2sf): Ditto. + (vec_pack_trunc_v4hi: Ditto. + (vec_pack_trunc_v2si): Ditto. + (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN. + (vec_interleave_highv8qi): Ditto. + (mix1_r): Ditto. + (vec_extract_oddv8qi): Ditto. + (vec_interleave_lowv4hi): Ditto. + (vec_interleave_highv4hi): Ditto. + (vec_interleave_lowv2si): Ditto. + (vec_interleave_highv2si): Ditto. + +2011-01-18 John David Anglin + + * doc/extend.texi: Mention __float128 support on hppa HP-UX. + * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1. + * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h". + (pa_c_mode_for_suffix): New. + (TARGET_EXPAND_BUILTIN): Define. + (TARGET_C_MODE_FOR_SUFFIX): Define. + (pa_builtins): Define. + (pa_init_builtins): Register __float128 type and init new support + builtins. + * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined. + * config/pa/quadlib.c (_U_Qfcopysign): New. + +2011-01-18 Eric Botcazou + + PR middle-end/46894 + * explow.c (allocate_dynamic_stack_space): Do not assume more than + BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET + are defined. + +2011-01-18 Ulrich Weigand + + PR tree-optimization/47179 + * config/spu/spu.c (spu_ref_may_alias_errno): New function. + (TARGET_REF_MAY_ALIAS_ERRNO): Define. + +2011-01-18 Richard Guenther + + PR rtl-optimization/47216 + * emit-rtl.c: Include tree-flow.h. + (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead + of replicating it with different semantics. + * Makefile.in (emit-rtl.o): Adjust. + +2011-01-18 Ramana Radhakrishnan + + * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include. + (cortex_a9_dp): Handle neon types correctly. + +2011-01-18 Jakub Jelinek + + PR rtl-optimization/47299 + * expr.c (expand_expr_real_2) : Don't use + subtarget. Use normal multiplication if both operands are constants. + * expmed.c (expand_widening_mult): Don't try to optimize constant + multiplication if op0 has VOIDmode. Convert op1 constant to mode + before using it. + +2011-01-17 Ralf Wildenhues + + * doc/lto.texi (LTO): Ensure two spaces after period. Fix + spacing after 'e.g.', typos, comma, hyphenation. + +2011-01-17 Richard Henderson + + * config/rx/predicates.md (rx_constshift_operand): Use match_test. + (rx_restricted_mem_operand): New. + (rx_shift_operand): Use register_operand. + (rx_source_operand, rx_compare_operand): Likewise. + * config/rx/rx.md (addsi3_flags): New expander. + (adddi3): Rewrite as expander. + (adc_internal, *adc_flags, adddi3_internal): New patterns. + (subsi3_flags): New expander. + (subdi3): Rewrite as expander. + (sbb_internal, *sbb_flags, subdi3_internal): New patterns. + + * config/rx/rx.c (RX_BUILTIN_SAT): Remove. + (rx_init_builtins): Remove sat builtin. + (rx_expand_builtin): Likewise. + * config/rx/rx.md (ssaddsi3): New. + (*sat): Rename from sat. Represent the CC_REG input. + + * config/rx/predicates.md (rshift_operator): New. + * config/rx/rx.c (rx_expand_insv): Remove. + * config/rx/rx-protos.h: Update. + * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift + operand to the canonical position. + (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly. + (*bitclr, *bitclr_in_memory): Similarly. + (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New. + (insv): Retain the zero_extract in the expansion. + + * config/rx/rx.md (bswapsi2): Use = not + for output reload. + (bswaphi2, bitinvert, revw): Likewise. + + * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET. + (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise. + * config/rx/rx.md (pop_and_return): Use VOIDmode for SET. + (stack_push, stack_pushm, stack_pop, stack_popm): Likewise. + (bitset, bitset_in_memory): Likewise. + (bitinvert, bitinvert_in_memory): Likewise. + (bitclr, bitclr_in_memory): Likewise. + (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise. + (rx_strend, rx_cmpstrn): Likewise. + (rx_setmem): Likewise. Make the source BLKmode to match the dest. + (bitop peep2 patterns): Remove. + + * config/rx/rx.c (rx_match_ccmode): New. + * config/rx/rx-protos.h: Update. + * config/rx/rx.md (abssi2): Clobber, don't set flags. + (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise. + (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise. + (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise. + (fix_truncsfsi2, floatsisf2): Likewise. + (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New. + (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New. + (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New. + (*subsi3_flags, *xorsi3_flags): New. + + * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns. + + * config/rx/rx.c (rx_print_operand): Remove workaround for + unsplit comparison operations. + + * config/rx/rx.md (movsicc): Split after reload. + (*movsicc): Merge *movsieq and *movsine via match_operator. + (*stcc): New pattern. + + * config/rx/rx.c (rx_float_compare_mode): Remove. + * config/rx/rx.h (rx_float_compare_mode): Remove. + * config/rx/rx.md (cstoresi4): Split after reload. + (*sccc): New pattern. + + * config/rx/predicates.md (label_ref_operand): New. + (rx_z_comparison_operator): New. + (rx_zs_comparison_operator): New. + (rx_fp_comparison_operator): New. + * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes. + Validate that the flags are set properly for the comparison. + (rx_gen_cond_branch_template): Remove. + (rx_cc_modes_compatible): Remove. + (mode_from_flags): New. + (flags_from_code): Rename from flags_needed_for_conditional. + (rx_cc_modes_compatible): Re-write in terms of flags_from_mode. + (rx_select_cc_mode): Likewise. + (rx_split_fp_compare): New. + (rx_split_cbranch): New. + * config/rx/rx.md (most_cond, zs_cond): Remove iterators. + (*cbranchsi4): Use match_operator and rx_split_cbranch. + (*cbranchsf4): Similarly. + (*cbranchsi4_tst): Rename from *tstbranchsi4_. Use + match_operator and rx_split_cbranch. + (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and + tstbranchsi4m_ne. Use match_operator and rx_split_cbranch. + (*cmpsi): Rename from cmpsi. + (*tstsi): Rename from tstsi. + (*cmpsf): Rename from cmpsf; use CC_Fmode. + (*conditional_branch): Rename from conditional_branch. + (*reveresed_conditional_branch): Remove. + (b): Remove expander. + * config/rx/rx-protos.h: Update. + + * config/rx/rx.c (rx_compare_redundant): Remove. + * config/rx/rx.md (cmpsi): Don't use it. + * config/rx/rx-protos.h: Update. + + * config/rx/rx-modes.def (CC_F): New mode. + * config/rx/rx.c (rx_select_cc_mode): New. + * config/rx/rx.h (SELECT_CC_MODE): Use it. + * config/rx/rx-protos.h: Update. + +2011-01-17 Richard Henderson + + * except.c (dump_eh_tree): Fix stray ; after for statement. + +2011-01-17 Richard Guenther + + PR tree-optimization/47313 + * tree-inline.c (tree_function_versioning): Move DECL_RESULT + handling before copying the body. Properly deal with + by-reference result in SSA form. + +2011-01-17 Ian Lance Taylor + + PR target/47219 + * config/sparc/sparc.c (sparc_sr_alias_set): Don't define. + (struct_value_alias_set): Don't define. + (sparc_option_override): Don't set sparc_sr_alias_set and + struct_value_alias_set. + (save_or_restore_regs): Use gen_frame_mem rather than calling + set_mem_alias_set. + (sparc_struct_value_rtx): Likewise. + +2011-01-17 H.J. Lu + + PR target/47318 + * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to + __m128i. + (_mm_maskstore_pd): Likewise. + (_mm_maskload_ps): Likewise. + (_mm_maskstore_ps): Likewise. + (_mm256_maskload_pd): Change mask to __m256i. + (_mm256_maskstore_pd): Likewise. + (_mm256_maskload_ps): Likewise. + (_mm256_maskstore_ps): Likewise. + + * config/i386/i386-builtin-types.def: Updated. + (ix86_expand_special_args_builtin): Likewise. + + * config/i386/i386.c (bdesc_special_args): Update + __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps, + __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256, + __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps, + __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256. + + * config/i386/sse.md (avx_maskload): + Use on mask register. + (avx_maskstore): Likewise. + +2011-01-17 Olivier Hainque + Michael Haubenwallner + Eric Botcazou + + PR target/46655 + * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only + if <= USHRT_MAX in 32-bit mode. + +2011-01-17 Ralf Wildenhues + + * doc/install.texi (Configuration, Specific): Wrap long + lines in examples. Allow line wrapping in long options + and URLs where beneficial for PDF output. + +2011-01-16 Richard Sandiford + + * config/mips/mips.c (mips_classify_symbol): Don't return + SYMBOL_PC_RELATIVE for nonlocal labels. + +2011-01-15 Eric Botcazou + + * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo. + +2011-01-15 Jan Hubicka + + PR tree-optimization/47276 + * ipa.c (function_and_variable_visibility): Do not try to mark alias + declarations as needed. + +2011-01-15 Martin Jambor + + * common.opt (fdevirtualize): New flag. + * doc/invoke.texi (Option Summary): Document it. + * opts.c (default_options_table): Add devirtualize flag. + * ipa-prop.c (detect_type_change): Return immediately if + devirtualize flag is not set. + (detect_type_change_ssa): Likewise. + (compute_known_type_jump_func): Likewise. + (ipa_analyze_virtual_call_uses): Likewise. + +2011-01-14 Martin Jambor + + PR tree-optimization/45934 + PR tree-optimization/46302 + * ipa-prop.c (type_change_info): New type. + (stmt_may_be_vtbl_ptr_store): New function. + (check_stmt_for_type_change): Likewise. + (detect_type_change): Likewise. + (detect_type_change_ssa): Likewise. + (compute_complex_assign_jump_func): Check for dynamic type change. + (compute_complex_ancestor_jump_func): Likewise. + (compute_known_type_jump_func): Likewise. + (compute_scalar_jump_functions): Likewise. + (ipa_analyze_virtual_call_uses): Likewise. + (ipa_analyze_node): Push and pop cfun, set current_function_decl. + +2011-01-14 Joseph Myers + + * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5. + * config/i386/i386.opt (msse5): New Alias. + +2011-01-14 Joseph Myers + + * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}. + * config/sparc/linux64.h (CC1_SPEC): Likewise. + * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. + * config/sparc/sparc.h (CC1_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of + -mcpu options. + * config/sparc/linux64.h (CC1_SPEC): Likewise. + * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. + * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise. + * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC): + Likewise. + * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8. + +2011-01-14 Joseph Myers + + * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi. + +2011-01-14 Mike Stump + + * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set. + * config/fr30/fr30.md: Likweise + (movsi_push): Likewise. + (movsi_pop): Likewise. + (enter_func): Likewise. + * config/moxie/moxie.md (movsi_push): Likewise. + (movsi_pop): Likewise. + +2011-01-14 Joseph Myers + + * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum} + %{no_archive} %{exact_version}. + * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}. + * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum} + %{no_archive} %{exact_version}. + * config/mips/openbsd.h (LINK_SPEC): Likewise. + * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}. + * config/mips/vxworks.h: Likewise. + +2011-01-14 Joseph Myers + + * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}. + +2011-01-14 Joseph Myers + + * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC, + ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove. + +2011-01-14 Joseph Myers + + * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not + -nodefaultlib. + +2011-01-14 Joseph Myers + + * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check + for mcpu not cpu. + * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC, + CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu + not cpu. + (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options. + Don't handle -shlib. + +2011-01-14 Joseph Myers + + * config/avr/avr.h (CPP_SPEC): Don't handle -posix. + (CC1_SPEC): Don't handle -profile. + +2011-01-14 Joseph Myers + + * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec. + * config/mips/mips.h (CC1_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }. + * config/mips/mips.h (CC1_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional. + * config/m32r/linux.h (LINK_SPEC): Likewise. + * config/mips/linux.h (LINK_SPEC): Likewise. + * config/mips/linux64.h (LINK_SPEC): Likewise. + * config/sparc/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, + LINK_SPEC): Likewise. + * config/xtensa/linux.h (LINK_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove + %{version:-v}. + * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}. + * config/sparc/sp64-elf.h (ASM_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}. + +2011-01-14 Rainer Orth + + * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always + supports -Bstatic/-Bdynamic. + * configure: Regenerate. + +2011-01-14 Jan Hubicka + Jack Howarth + + PR target/46037 + * config/darwin.c (darwin_override_options): Honor flag_gtoggle + when checking debug_info_level. Test write_symbols instead of + debug_hooks->var_location when setting flag_var_tracking_uninit. + +2011-01-14 Richard Guenther + + PR tree-optimization/47179 + * target.def (ref_may_alias_errno): New target hook. + * targhooks.h (default_ref_may_alias_errno): Declare. + * targhooks.c: Include tree-ssa-alias.h and tree-flow.h. + (default_ref_may_alias_errno): New function. + * target.h (struct ao_ref_s): Declare. + * tree-ssa-alias.c: Include target.h. + (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook. + * Makefile.in (tree-ssa-alias.o): Adjust dependencies. + (targhooks.o): Likewise. + * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document. + * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation. + +2011-01-14 Richard Guenther + + * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER. + +2011-01-14 Richard Guenther + + PR tree-optimization/47280 + * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and + return CFG changes. + (tree_ssa_forward_propagate_single_use_vars): Deal with + CFG changes from associate_plusminus. + +2011-01-14 Richard Guenther + + PR middle-end/47281 + Revert + 2011-01-11 Richard Guenther + + PR tree-optimization/46076 + * tree-ssa.c (useless_type_conversion_p): Conversions from + unprototyped to empty argument list function types are useless. + +2011-01-14 Richard Guenther + + PR tree-optimization/47286 + * tree-ssa-structalias.c (new_var_info): Register variables are global. + +2011-01-14 Martin Jambor + + PR middle-end/46823 + * tree-inline.c (expand_call_inline): Get fndecl from call graph edge. + +2011-01-13 Anatoly Sokolov + + * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE, + LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros. + * config/xtensa/xtensa.c (xtensa_libcall_value, + xtensa_function_value_regno_p): New functions. + (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. + +2011-01-13 Kai Tietz + + PR c++/47213 + * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY): + PE specific hook. + * config/i386/i386-protos.h (i386_pe_assemble_visibility): + New function prototype. + * config/i386/winnt.c (i386_pe_assemble_visibility): + Warn only if attribute was specified by user. + +2011-01-13 Michael Meissner + + PR target/47251 + * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware + floating point. + (floatunsdidf2_fcfidu): Ditto. + +2011-01-13 Andreas Krebbel + + * config/s390/s390.c (print_operand_address): Replace 'error' with + 'output_operand_lossage'. + (print_operand): Likewise. + +2011-01-13 Jeff Law + + PR rtl-optimization/39077 + * doc/invoke.texi (max-gcse-insertion-ratio): Document. + * params.h (MAX_GCSE_INSERTION_RATIO): Define. + * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define. + * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps. + * gcse.c (prune_insertions_deletions): New function. + (compute_pre_data): Use it. + +2011-01-13 Dodji Seketeli + + PR debug/PR46973 + * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New + static function. + (prune_unused_types_mark): Use it. + +2011-01-13 Andrey Belevantsev + + PR rtl-optimization/45352 + * sel-sched.c: Update copyright years. + (reset_sched_cycles_in_current_ebb): Also recheck the DFA state + in the advancing loop when we have issued issue_rate insns. + +2011-01-12 Richard Henderson + + * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New. + (TARGET_MD_ASM_CLOBBERS): New. + + * config/mn10300/mn10300.c (mn10300_delegitimize_address): New. + (TARGET_DELEGITIMIZE_ADDRESS): New. + + * config/mn10300/mn10300.md (UNSPEC_BSCH): New. + (clzsi2, *bsch): New patterns. + + * config/mn10300/mn10300.md (INT): New mode iterator. + (*mov_clr): New pattern, and peep2 to generate it. + + * config/mn10300/mn10300.c (mn10300_option_override): Force enable + flag_split_wide_types. + + * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove. + (mn10300_trampoline_init): Rewrite without a template, an immediate + load and a direct branch. + * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16. + +2011-01-12 Anatoly Sokolov + + * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove. + * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove. + * config/s390/s390.c (s390_output_addr_const_extra): Make static. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + +2011-01-12 Kai Tietz + + PR debug/47209 + * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT + of type. + +2011-01-12 Jan Hubicka + + PR driver/47244 + * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used. + (PLUGIN_COND_CLOSE): New macro. + (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE. + +2011-01-12 Richard Guenther + + PR lto/47259 + * lto-streamer-out.c (output_gimple_stmt): Do not wrap + register variables in a MEM_REF. + +2011-01-12 Joseph Myers + + * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*, + crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*, + hppa*64*-*-linux*, hppa*-*-linux*, 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, + ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*, + m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*, + mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*, + s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*, + sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*, + am33_2.0-*-linux*): Use gnu-user.h before linux.h. + * config/gnu-user.h: New. Copied from linux.h. + (LINUX_TARGET_STARTFILE_SPEC): Rename to + GNU_USER_TARGET_STARTFILE_SPEC. + (LINUX_TARGET_ENDFILE_SPEC): Rename to + GNU_USER_TARGET_ENDFILE_SPEC. + (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC. + (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC. + (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, + LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1, + CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, + UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, + BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32, + BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64, + TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove. + * config/arm/linux-eabi.h (CC1_SPEC): Use + GNU_USER_TARGET_CC1_SPEC. + (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC. + (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC. + (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC + * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF, + LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC, + LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC, + CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC, + LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove. + +2011-01-12 Richard Guenther + + PR other/46946 + * doc/invoke.texi (ffast-math): Document it is turned on + with -Ofast. + +2011-01-12 Jan Hubicka + + PR tree-optimization/47233 + * opts.c (common_handle_option): Disable ipa-reference with profile + feedback. + +2011-01-12 Nicola Pero + + * c-parser.c (c_parser_objc_at_property_declaration): Improved + error message. + +2011-01-12 Nicola Pero + + * c-parser.c (c_lex_one_token): Updated and reindented some + comments. No changes in code. + +2011-01-11 Ian Lance Taylor + + * godump.c (go_output_var): Don't output the variable if there is + already a type with the same name. + +2011-01-11 Ian Lance Taylor + + * godump.c (go_format_type): Don't generate float80. + +2011-01-11 Richard Henderson + + * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward + declaration. Rewrite for both speed and size. + (mn10300_address_cost_1): Remove. + (mn10300_register_move_cost): New. + (mn10300_memory_move_cost): New. + (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle + ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare, + extensions, shifts, BSWAP, CLZ. + (mn10300_wide_const_load_uses_clr): Remove. + (TARGET_REGISTER_MOVE_COST): New. + (TARGET_MEMORY_MOVE_COST): New. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove. + + * config/mn10300/constraints.md ("R", "T"): Remove constraints. + * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.md (movsi_internal): Don't use "R". + (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove. + (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove. + (*test_int_bitfield, *test_byte_bitfield): Remove. + (*bit_test, *subreg_bit_test): Remove. + * config/mn10300/predicates.md (const_8bit_operand): Remove. + + * config/mn10300/constraints.md ("c"): Rename from "A". + ("A", "D"): New constraint letters. + * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint. + (fmssf4, fnmasf4, fnmssf4): Likewise. + + * config/mn10300/mn10300.md (isa): New attribute. + (enabled): New attribute. + + * config/mn10300/mn10300.md (absdf2, negdf2): Remove. + (abssf2, negsf2): Define only for hardware fp. + (sqrtsf2): Reformat. + (addsf3, subsf3, mulsf3): Merge expander and insn. + + * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New. + (DEBUGGER_AUTO_OFFSET): Remove. + (DEBUGGER_ARG_OFFSET): Remove. + + * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static. + Emit register stores with the same offsets as the hardware. + (mn10300_store_multiple_operation): Don't check that the register + save offsets are monotonic. + * config/mn10300/mn10300-protos.h: Update. + + * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete. + + * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define + in terms of the value on the stack, not the MDR register. + +2011-01-11 Jan Hubicka + + PR lto/45721 + PR lto/45375 + * tree.h (symbol_alias_set_t): Move typedef here from varasm.c + (symbol_alias_set_destroy, symbol_alias_set_contains, + propagate_aliases_backward): Declare. + * lto-streamer-out.c (struct sets): New sturcture. + (trivally_defined_alias): New function. + (output_alias_pair_p): Rewrite. + (output_unreferenced_globals): Fix output of alias pairs. + (produce_symtab): Likewise. + * ipa.c (function_and_variable_visibility): Set weak alias destination + as needed in lto. + * varasm.c (symbol_alias_set_t): Remove. + (symbol_alias_set_destroy): Export. + (propagate_aliases_forward, propagate_aliases_backward): New functions + based on ... + (compute_visible_aliases): ... this one; remove. + (trivially_visible_alias): New + (trivially_defined_alias): New. + (remove_unreachable_alias_pairs): Rewrite. + (finish_aliases_1): Reorganize code checking if alias is defined. + * passes.c (rest_of_decl_compilation): Do not call assemble_alias when + in LTO mode. + +2011-01-11 Richard Guenther + + PR tree-optimization/46076 + * tree-ssa.c (useless_type_conversion_p): Conversions from + unprototyped to empty argument list function types are useless. + +2011-01-11 Richard Guenther + + PR middle-end/45235 + * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark + volatile MEMs as MEM_READONLY_P. + +2011-01-11 Richard Guenther + + PR tree-optimization/47239 + * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs. + +2011-01-11 Jeff Law + + PR tree-optimization/47086 + * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record + IVs from statements that might throw. + +2011-01-10 Jan Hubicka + + PR lto/45375 + * lto-cgraph.c (input_profile_summary): Remove overactive sanity check. + +2011-01-10 Jan Hubicka + + PR lto/45375 + * profile.c (read_profile_edge_counts): Ignore profile inconistency + when correcting profile. + +2011-01-10 Jan Hubicka + + PR lto/46083 + * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store + DECL_FINI_PRIORITY. + * lto-streamer-in.c (unpack_ts_function_decl_value_fields): + Restore DECL_FINI_PRIORITY. + +2011-01-10 Ralf Wildenhues + + * doc/gimple.texi: Fix quoting of multi-word return values in + @deftypefn statements. Ensure presence of return value. Wrap + overlong @deftypefn lines. + (is_gimple_operand, is_gimple_min_invariant_address): Remove + descriptions of removed functions. + * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting + of multi-word return value in @deftypefn statement. + +2011-01-10 Ralf Wildenhues + + * doc/gimple.texi (Temporaries, Operands, Compound Lvalues) + (Conditional Expressions, Logical Operators) + (Statement and operand traversals): Do not indent smallexample + code. Fix duplicate function argument in example. + +2011-01-10 Jeff Law + + PR tree-optimization/47141 + * ipa-split.c (split_function): Handle case where we are + returning a value and the return block has a virtual operand phi. + +2011-01-10 Jan Hubicka + + PR tree-optimization/47234 + * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO. + (pass_feedback_split_functions): Declare. + * passes.c (init_optimization_passes): Add ipa-split as subpass of + tree-profile. + * ipa-split.c (gate_split_functions): Update comments; disable + split-functions for profile_arc_flag and branch_probabilities. + (gate_feedback_split_functions): New function. + (execute_feedback_split_functions): New function. + (pass_feedback_split_functions): New global var. + +2011-01-10 H.J. Lu + + PR lto/46760 + * tree-inline.c (tree_can_inline_p): Check e->call_stmt before + calling gimple_call_set_cannot_inline. + +2011-01-10 Iain Sandoe + + * config/darwin-sections.def: Remove unused section. + +2011-01-10 Dave Korn + + PR c++/47218 + * cgraphunit.c (assemble_thunk): Call resolve_unique_section. + +2011-01-09 Nicola Pero + + PR objc/47232 + * c-parser.c (c_parser_declaration_or_fndef): Improved + error message. + +2011-01-09 Kai Tietz + + * config/i386/winnt.c (i386_pe_start_function): Make sure + to switch back to function's section. + +2011-01-09 Iain Sandoe + + PR gcc/46902 + PR testsuite/46912 + * plugin.c: Move include of dlfcn.h from here... + * system.h: ... to here. + +2011-01-09 Ralf Wildenhues + + * doc/cpp.texi (C++ Named Operators): Fix markup for header + file name. + * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid + two extra empty pages in PDF output. + +2011-01-08 Nicola Pero + + PR objc/47078 + * c-parser.c (c_parser_objc_type_name): If the type is unknown, + for error recovery purposes behave as if it was not specified so + that the default type is usd. + +2011-01-07 Jan Hubicka + + PR tree-optmization/46469 + * ipa.c (function_and_variable_visibility): Clear needed flags on + nodes with external decls; handle weakrefs merging correctly. + +2011-01-07 Joseph Myers + + * opts.c (finish_options): Set opts->x_flag_opts_finished to true, + not false. + +2011-01-07 Jan Hubicka + + * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults + and no longer claim that gold is required for linker plugin. + * configure: Regenerate. + * gcc.c (PLUGIN_COND): New macro. + (LINK_COMMAND_SPEC): Use it. + (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set. + * config.in (HAVE_LTO_PLUGIN): New. + * configure.ac (--with-lto-plugin): New parameter; autodetect + HAVE_LTO_PLUGIN. + +2011-01-07 Jan Hubicka + + PR tree-optimization/46367 + * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only + when we can update original. + (cgraph_mark_inline_edge): Sanity check. + * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check. + +2011-01-07 Ulrich Weigand + + * config/spu/spu.h (ASM_COMMENT_START): Define. + +2011-01-07 H.J. Lu + + PR driver/42445 + * gcc.c (%>S): New. + (SWITCH_KEEP_FOR_GCC): Likewise. + (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC. + (do_spec_1): Handle "%>". + + * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>". + +2011-01-07 Jakub Jelinek + + PR target/47201 + * config/i386/i386.c (ix86_delegitimize_address): If + simplify_gen_subreg fails, return orig_x. + + PR bootstrap/47187 + * value-prof.c (gimple_stringop_fixed_value): Handle + lhs of the call properly. + +2011-01-07 Jan Hubicka + + PR lto/45375 + * lto-opt.c (lto_reissue_options): Set flag_shlib. + +2011-01-07 Iain Sandoe + + * target.def (function_switched_text_sections): New hook. + * doc/tm.texi: Regenerated. + * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. + * final.c (default_function_switched_text_sections): New. + (final_scan_insn): Call function_switched_text_sections when a + mid-function section change occurs. + * output.h (default_function_switched_text_sections): Declare. + * config/darwin-protos.h (darwin_function_switched_text_sections): + Likewise. + * config/darwin.c (darwin_function_switched_text_sections): New. + * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. + +2011-01-07 Iain Sandoe + + * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for + DWARF >= 3. Add pubnames for the primary section and a reduced DIE for + the secondary code fragment when outputting for DWARF == 2. + +2011-01-07 Anatoly Sokolov + + * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove. + * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra): + Remove. + * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + +2011-01-06 Eric Botcazou + + PR debug/46704 + * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only + when it is not empty. + +2011-01-06 Changpeng Fang + + Bobcat Enablement + * config.gcc (i[34567]86-*-linux* | ...): Add btver1. + (case ${target}): Add btver1. + * config/i386/driver-i386.c (host_detect_local_cpu): Let + -march=native recognize btver1 processors. + * config/i386/i386-c.c (ix86_target_macros_internal): Add + btver1 def_and_undef + * config/i386/i386.c (struct processor_costs btver1_cost): New + btver1 cost table. + (m_BTVER1): New definition. + (m_AMD_MULTIPLE): Includes m_BTVER1. + (initial_ix86_tune_features): Add btver1 tune. + (processor_target_table): Add btver1 entry. + (static const char *const cpu_names): Add btver1 entry. + (software_prefetching_beneficial_p): Add btver1. + (ix86_option_override_internal): Add btver1 instruction sets. + (ix86_issue_rate): Add btver1. + (ix86_adjust_cost): Add btver1. + * config/i386/i386.h (TARGET_BTVER1): New definition. + (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1. + (enum processor_type): Add PROCESSOR_BTVER1. + * config/i386/i386.md (define_attr "cpu"): Add btver1. + +2011-01-06 Rainer Orth + + PR target/43309 + * config/i386/i386.c (legitimize_tls_address) + : Handle TARGET_64BIT && TARGET_SUN_TLS. + * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare. + (tls_initial_exec_64_sun): New pattern. + +2011-01-06 Gerald Pfeifer + + * doc/invoke.texi (Overall Options): Improve wording and markup + of the description of -wrapper. + +2011-01-06 Joseph Myers + + * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads, + rdynamic, threads): New Driver options. + +2011-01-06 Rainer Orth + + PR target/38118 + * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss + if coming from .tdata. + * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + +2011-01-06 Jan Hubicka + + PR lto/47188 + * collect2.c (main): Do not enable LTOmode when plugin is active. + +2011-01-06 Rainer Orth + + PR other/45915 + * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd + --version output if supported. + * configure: Regenerate. + +2011-01-06 Joseph Myers + + * config/linux-android.opt (tno-android-cc, tno-android-ld): New + Driver options. + +2011-01-06 Jakub Jelinek + + PR c/47150 + * c-convert.c (convert): When converting a complex expression + other than COMPLEX_EXPR to a different complex type, ensure + c_save_expr is called instead of save_expr, unless in_late_binary_op. + * c-typeck.c (convert_for_assignment): Set in_late_binary_op also + when converting COMPLEX_TYPE. + +2011-01-06 Ira Rosen + + PR tree-optimization/47139 + * tree-vect-loop.c (vect_is_simple_reduction_1): Check that + only the last reduction value is used outside the loop. Update + documentation. + +2011-01-05 Joseph Myers + + * config/rtems.opt: New. + * config.gcc (*-*-rtems*): Use rtems.opt. + +2011-01-05 Changpeng Fang + + * config/i386/i386.c (ix86_option_override_internal): Bulldozer + processors do not support 3DNow instructions. + +2011-01-05 Ulrich Weigand + + * config/spu/spu.c (spu_option_override): Set parameter + PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1. + +2011-01-05 Jan Hubicka + + * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified + at the command line. + +2011-01-05 Martin Jambor + + PR lto/47162 + * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk + deltas on streamed outgoing edges. + (output_node_opt_summary): Output info for outgoing edges only when + the node is in new parameter set. + (output_cgraph_opt_summary): New parameter set, passed to the two + aforementioned functions. Update its forward declaration and its + callee too. + +2011-01-05 Tom Tromey + + * c-parser.c (c_parser_omp_atomic): Pass location of assignment + operator to c_finish_omp_atomic. + * c-typeck.c (lvalue_or_else): Add 'loc' argument. + (build_unary_op): Update. + (build_modify_expr): Update. + (build_asm_expr): Update. + +2011-01-05 Ulrich Weigand + + * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for + newly inserted insns. + (pad_bb): Likewise. + (spu_emit_branch_hint): Likewise. + (insert_hbrp_for_ilb_runout): Likewise. + (spu_machine_dependent_reorg): Call df_finish_pass after + schedule_insns returns. + +2011-01-05 Ulrich Weigand + + * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage. + +2011-01-05 Eric Botcazou + + PR tree-optimization/47005 + * tree-sra.c (struct access): Add 'non_addressable' bit. + (create_access): Set it for a DECL_NONADDRESSABLE_P field. + (decide_one_param_reduction): Return 0 if the parameter is passed by + reference and one of the accesses in the group is non_addressable. + +2011-01-04 Eric Botcazou + + PR tree-optimization/47056 + * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers. + (mark_load): Likewise. Handle FUNCTION_DECL specially. + (mark_store): Likewise. Pass STMT to ipa_record_reference. + +2011-01-04 Eric Botcazou + + * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the + initializer. Skip view conversions from aggregate types. + +2011-01-04 Kai Tietz + + PR bootstrap/47055 + * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC. + +2011-01-04 Philipp Thomas + + * config/microblaze/microbalse.opt (mxl-float-convert): Fix + obvious typo. + +2011-01-04 Ulrich Weigand + + * function.c (thread_prologue_and_epilogue_insns): Do not crash + on empty epilogue sequences. + +2011-01-04 Joseph Myers + + * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now, + non-static): New Driver options. + +2011-01-04 Jie Zhang + + PR driver/47137 + * gcc.c (default_compilers[]): Set combinable field to 0 + for all assembly languages. + +2011-01-04 Mingjie Xing + + * config/mips/loongson3a.md: New file. + * config/mips/mips.md: Include loongson3a.md. + * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when + TUNE_LOONGSON_3A. + +2011-01-03 Eric Botcazou + + PR middle-end/47017 + * expr.c (expand_expr_real_1) : Call memory_address_addr_space + instead of convert_memory_address_addr_space on the base expression. + +2011-01-03 Ulrich Weigand + + * config/spu/spu.c (spu_option_override): Update error text + for bad -march= / -mtune= values. + +2011-01-03 Ulrich Weigand + + * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking + if branch-hint optimization will be performed. + +2011-01-03 Jakub Jelinek + + PR tree-optimization/47148 + * ipa-split.c (split_function): Convert arguments to + DECL_ARG_TYPE if possible. + + PR tree-optimization/47155 + * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type + when computing uns. + + PR rtl-optimization/47157 + * combine.c (try_combine): If undobuf.other_insn becomes + (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it + and set *new_direct_jump_p too. + +2011-01-03 Sebastian Pop + + PR tree-optimization/47021 + * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR. + +2011-01-03 Jakub Jelinek + + * gcc.c (process_command): Update copyright notice dates. + * gcov.c (print_version): Likewise. + * gcov-dump.c (print_version): Likewise. + * mips-tfile.c (main): Likewise. + * mips-tdump.c (main): Likewise. + +2011-01-03 Martin Jambor + + PR tree-optimization/46801 + * tree-sra.c (type_internals_preclude_sra_p): Check whether + aggregate fields start at byte boundary instead of the bit-field flag. + +2011-01-03 H.J. Lu + + PR driver/47137 + * gcc.c (main): Revert revision 168407. + +2011-01-03 Martin Jambor + + * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type. + +2011-01-03 Ulrich Weigand + + * tree-vect-generic.c (expand_vector_operations_1): When using vector/ + vector optab to expand vector/scalar shift, update gimple to vector. + +2011-01-03 Martin Jambor + + * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to + a thunk. + +2011-01-03 Martin Jambor + + PR tree-optimization/46984 + * cgraph.h (cgraph_indirect_call_info): make field thunk_delta + HOST_WIDE_INT. + (cgraph_create_indirect_edge): Fixed line length. + (cgraph_indirect_call_info): Declare. + (cgraph_make_edge_direct) Update declaration. + * cgraph.c (cgraph_allocate_init_indirect_info): New function. + (cgraph_create_indirect_edge): Use it. + (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all + callees. + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for + the new thunk_delta representation. + * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to + HOST_WIDE_INT. + (ipa_write_indirect_edge_info): Remove streaming of thunk_delta. + (ipa_read_indirect_edge_info): Likewise. + * lto-cgraph.c (output_edge_opt_summary): New function. + (output_node_opt_summary): Call it on all outgoing edges. + (input_edge_opt_summary): New function. + (input_node_opt_summary): Call it on all outgoing edges. + +2011-01-02 H.J. Lu + + PR driver/47137 + * gcc.c (main): Don't check have_o when settting combine_inputs. + +2011-01-02 Eric Botcazou + + * regrename.c: Add general comment describing the pass. + (struct du_head): Remove 'length' field. + (get_element, merge_sort_comparison, merge, sort_du_head): Remove. + (regrename_optimize): Do not sort chains. Rework comments, add others. + Force renaming to the preferred class (if any) in the first pass and do + not consider registers that belong to it in the second pass. + (create_new_chain): Do not set 'length' field. + (scan_rtx_reg): Likewise. + +2011-01-02 Jakub Jelinek + + PR tree-optimization/47140 + * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use + TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument + to bit_value_binop. + + PR rtl-optimization/47028 + * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after + parm_birth_insn instead of at the beginning of first bb. + +2011-01-02 Mingjie Xing + + * doc/generic.texi: Remove duplicated "@subsubsection Statements". + Remove the word "see" before "@pxref". + * doc/rtl.texi: Remove the word "see" before "@pxref". + +2011-01-01 Jan Hubicka + + * tree-loop-distribution.c (tree_loop_distribution): Do not use freed + memory. + +2011-01-01 Kai Tietz + + PR target/38662 + * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too. + + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. -- cgit v1.2.3