X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=4fd3ab0ef65d5cde8b10f61425ef7cec25e81e40;hb=8d44e5fa944c31fc16fa22beab84a9c96d3e7717;hp=374615b45463609bfd52650a85b947898a2e9742;hpb=18d50ae6ff193b3e8af71e41353850749036283b;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 374615b4546..4fd3ab0ef65 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1330 @@ +2008-05-08 Sa Liu + + * config/spu/spu.md: Fixed subti3 pattern. + * testsuite/gcc.target/spu/subti3.c: New. + +2008-05-08 Richard Guenther + + PR middle-end/36154 + * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make + sure to create a representative for trailing arrays for PTA. + +2008-05-08 Richard Guenther + + PR middle-end/36172 + * fold-const.c (operand_equal_p): Two objects which types + differ in pointerness are not equal. + +2008-05-08 Kai Tietz + + * calls.c (compute_argument_block_size): Add argument tree fndecl. + (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument. + (emit_library_call_value_1): Add new variable fndecl initialized by + NULL_TREE. It should be the decl type of orgfun, but this information + seems not to be available here, so it uses the default calling abi. + * config/arm/arm.c (arm_return_in_memory): Add fntype argumen. + * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY + by TARGET_RETURN_IN_MEMORY. + * config/i386/i386-interix.h: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/i386elf.h: Likewise. + * config/i386/ptx4-i.h: Likewise. + * config/i386/sol2-10.h: Likewise. + * config/i386/sysv4.h: Likewise. + * config/i386/vx-common.h: Likewise. + * config/cris/cris.h: Removed #if 0 clause. + * config/arm/arm-protos.h (arm_return_in_memory): Add fntype + argument. + * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype + argument. + (ix86_sol10_return_in_memory): Likewise. + (ix86_i386elf_return_in_memory): New. + (ix86_i386interix_return_in_memory): New. + * config/mt/mt-protos.h (mt_return_in_memory): New. + * config/mt/mt.c: Likewise. + * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument. + (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY. + * config/bfin/bfin.h: Likewise. + * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype + argument. + * config/bfin/bfin.c: Likewise. + * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument. + * config/alpha/unicosmk.h: Likewise. + * config/i386/cygming.h: Likewise. + * config/iq2000/iq2000.h: Likewise. + * config/mips/mips.h: Likewise. + * config/mn10300/mn10300.h: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/score/score.h: Likewise. + * config/spu/spu.h: Likewise. + * config/v850/v850.h: Likewise. + * defaults.h: Likewise. + * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation. + * expr.c (emit_block_move): Adjust use of OUTGOING_REG_PARM_STACK_SPACE. + * function.c (STACK_DYNAMIC_OFFSET): Adjust use of + OUTGOING_REG_PARM_STACK_SPACE. + * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY. + +2008-05-08 Jakub Jelinek + + * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT + on OMP_RETURN for OMP_FOR. + + PR debug/35896 + * dwarf2out.c (dw_expand_expr, common_check): Removed. + (fortran_common): New function. + (gen_variable_die): Call fortran_common instead of common_check, + adjust for it returning tree instead of rtx. Formatting. + +2008-05-07 Kenneth Zadeck + + PATCH rtl/7335 + PATCH rtl/33826 + * see.c (see_copy_insn): Copy new pure const attributes for new + call. + * c-decl.c (merge_decls): Ditto. + * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P + to RTL_CONST_OR_PURE_CALL_P. + * tree.c (define_local_buitin): Rename DECL_IS_PURE to + DECL_PURE_P. Initialized DECL_LOOPING_CONST_PURE. + (process_call_operands): Set tree_side_effects properly. + * tree.h (TREE_READONLY_DECL_P): Removed. + (DECL_IS_PURE): Renamed to DECL_PURE_P. + (DECL_LOOPING_OR_CONST_P): New macro. + (struct tree_function_decl): Added looping_const_or_pure_p. + (ECF_*) Renumbered. + (ECF_LOOPING_OR_CONST_P): New macro, + * rtlanal.c (pure_const_p): Removed. + * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P. + * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P + to RTL_CONST_CALL_P. + * ipa-pure-const.c (pure_const_state_e): Added looping field. + (check_decl, check_tree, check_call, scan_function): Initialize + looping. + (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P. + (static_execute): Set looping true for recursive functions. + Undo setting state to IPA_NEITHER for recursive functions. + * cse.c (cse_insn): + * ifcvt.c (noce_can_store_speculate_p): Changed + CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or + RTL_CONST_OR_PURE_CALL_P. + * dse.c (scan_insn): Ditto. + * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto. + * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to + RTL_CONST_OR_PURE_CALL_P. + (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and + pure_call_p to RTL_CONST_CALL_P. + * gimplify.c (gimplify_call_expr): Clear side effects for + non-looping pure and constant calls. + * calls.c (emit_call_1): Set rtl flags from ecf flags. + (flags_from_decl_or_type): Set ecf flags from decl flags. + (initialize_argument_information): Turn off + ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST. + Change const to pure if callee_copies is true rather than just + turning off const. + (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old + way of marking pure calls. + (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL. + Remove hack that was supposed to fix pr7335 and remove old + way of marking pure calls. + * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P, + RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P. + * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to + RTL_CONST_OR_PURE_CALL_P. + * tree-ssa-pre.c (can_value_number_call): Fixed spacing. + * loop-invariant.c (find_exits, find_invariant_bb): Changed + CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P. + * sched-deps.c (schedule_analyze): Ditto. + * rtl.h (struct rtx_def): Use call field, unchanging field, and + return_val field of calls to represent pure and const function + info. + (CONST_OR_PURE_CALL_P): Deleted macro. + (RTL_CONST_CALL_P, RTL_PURE_CALL_P, + RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros. + * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to + TREE_READONLY. + * tree-optimize.c (execute_fixup_cfg): Added test for + ECF_LOOPING_CONST_OR_PURE. + * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to + DECL_PURE_P. + * tree-cfg.c (update_call_expr_flags): Do not clear tree side + effects for looping pure or const calls. + (verify_gimple_expr): Added verification code. + * config/alpha/alpha.c (alpha_legitimize_address, + alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to + RTL_CONST_CALL_P. + * config/s390/s390.c (s390_emit_tls_call_insn): Ditto. + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto. + * config/mips/mips.c (mips_call_tls_get_addr): Ditto. + * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to + RTL_CONST_OR_PURE_CALL_P. + * dce.c (deletable_insn_p): Allow non looping, non sibling, pure + and const calls to be deleted. + + +2008-05-08 Uros Bizjak + + PR target/35714 + * config/i386/mmx.md (mmx_subv2sf3): New expander. + (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern. + (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern. + (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy + to handle nonimmediate operands. + (*mmx_paddwd): Rename from mmx_paddwd insn pattern. + (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy + to handle nonimmediate operands. + (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern. + (mmx_pmulhrwv4hi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern. + (sse2_umulv1siv1di3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*mmx_eq3): Rename from mmx_eq3 insn pattern. + (mmx_eq3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern. + (mmx_uavgv8qi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern. + (mmx_uavgv4hi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + + * config/i386/sse.md + (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands + to handle nonimmediate operands. + (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands + to handle nonimmediate operands. + (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands + to handle nonimmediate operands. + (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands + to handle nonimmediate operands. + (sse2_unpckhpd_exp): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (sse2_unpcklpd_exp): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands + to handle nonimmediate operands. + (sse_loadlpd): New expander. Use ix86_fixup_binary_operands + to handle nonimmediate operands. + (*sse2_3): Rename from + sse2_3 insn pattern. + (sse2_3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern. + (sse2_umulv2siv2di3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern. + (sse4_1_mulv2siv2di3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern. + (sse2_pmaddwd): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse2_eq3): Rename from sse2_eq3 insn pattern. + (sse2_eq3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern. + (sse4_1_eqv2di3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern. + (sse2_uavgv16qi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern. + (sse2_uavgv16qi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern. + (sse2_uavgv8hi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern. + (ssse3_pmulhrswv8hi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern. + (ssse3_pmulhrswv4hi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + + (_vm3): Do not use ix86_binary_operator_ok. + (_vmmul3): Ditto. + (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy. + (divv2df3): Ditto. + (ssse3_pmaddubsw128): Use register_operand for operand 1. + (ssse3_pmaddubsw): Ditto. + + * config/i386/i386.c (struct_builtin_description) + [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp. + [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp. + [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp. + [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp. + [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp. + [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp. + [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp. + [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp. + (ix86_fixup_binary_operands): Assert that src1 + and src2 must have the same mode when swapped. + (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands + and ix86_binary_operator_ok. Do not force operands in registers + when optimizing. + +2008-05-07 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Update. + * cgraph.h (cgraph_local_info): Break out inline summary. + * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis + hook. + * ipa-inline (inline_summary): New accestor function. + (cgraph_clone_inlined_nodes, cgraph_check_inline_limits, + cgraph_decide_inlining, compute_inline_parameters): Update. + * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics. + +2008-05-07 Maxim Kuvyrkov + + Cleanup ColdFire scheduling support and add V4 pipeline model. + + * config/m68k/m68k.md (UNSPEC_TIE): New constant. + (define_attr cpu): Add cfv4 value. + (define_attr type, define_attr type1): Merge into a single 'type' + attribute. Update all uses. + (define_attr opx_type, define_attr opy_type, define_attr opx_access): + Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'. + Update all uses. + (define_attr opx_mem, define_attr opy_mem): Remove. + (define_attr op_mem): Clean up, update comment. + (define_attr size): Use specific values instead of general int. + (define_attr guess, define_attr split): Remove. Update all uses. + (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal, + tst_68881, pushexthisi_const, movsi_const0_68000_10, + movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf, + zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2, + 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2, + floatsi2_68881, ftrunc2_68881, ftrunc2_cf, + fixqi2_68881, fixhi2_68881, fixsi2_68881, + adddi_dishl32, addsi3_5200, add3_floatsi_68881, + add3_floathi_68881, add3_floatqi_68881, + add3_68881, add3_cf, subdi_dishl32, subsi3, + sub3_floatsi_68881, sub3_floathi_68881, + sub3_floatqi_68881, sub3_68881, sub3_cf, + mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf, + umulhisi3, mulhisisi3_z, mul3_floatsi_68881, + mul3_floathi_68881, mul3_floatqi_68881, fmul3_cf, + div3_cf, sqrt2_cf, abs2_cf, clzsi2, + one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3, + bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext, + beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle, + bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value, + symbolic_call_value_jsr, symbolic_call_value_bsr, link): + Update or set attributes. + (stack_tie): New fake instruction. + + * config/m68k/m68k.h (TUNE_CFV4): New macro. + (m68k_sched_attr_size): Update declaration. + (m68k_sched_attr_type2): Remove. + (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p): + Declare new bypass predicates. + + * config/m68k/m68k.c (m68k_sched_issue_rate, + m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook + implementations. + (TARGET_SCHED_ISSUE_RATE, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks. + (override_options): Handle scheduling for ColdFire V4 core. + (m68k_expand_prologue): Emit stack_tie. + (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and + 'OP_TYPE_FPN'. Update all uses. + (sched_guess_p): Remove. + (sched_address_type): Handle symbolic addresses. + (sched_get_operand): New static function. + (sched_operand_type): Merge into sched_attr_op_type. + (sched_attr_op_type): Handle FP registers, handle quick constants, + update. + (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update. + (m68k_sched_attr_size): Update. Move logic to ... + (sched_get_attr_size_int): New static function. + (sched_get_opxy_mem_type): New static function. + (m68k_sched_attr_op_mem): Update. + (m68k_sched_attr_type2): Remove. + (sched_cfv4_bypass_data): New static variable. + (m68k_sched_adjust_cost): Handle ColdFire V4 bypass. + (m68k_sched_issue_rate): Implement scheduler hook. + (struct _sched_ib: enabled_p): New field. + (m68k_sched_variable_issue): Update. Handle V4. + (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING, + sched_dump_class_func_t, sched_dump_split_class, + sched_dump_dfa_guess_unit_code, sched_dump_dfa_state, + sched_dump_dfa_class, m68k_sched_dump): Remove. + (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler + hook. + (m68k_sched_init_global): Remove statisctics dumping, introduce + sanity check that all instructions have pipeline reservations. Handle + ColdFire V4 core. + (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle): + Handle ColdFire V4 core. + (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand): + New static functions. + (m68k_sched_address_bypass_p): New bypass predicate. + (sched_get_indexed_address_scale): New static function. + (m68k_sched_indexed_address_bypass_p): New bypass predicate. + + * cf.md: Update comments. + (define_attr type2): Remove. Use 'type' attribute instead. + Update all uses. + (cf_ib): Rename to cfv123_ib. Update all uses. + (cf_oep): Rename to cfv123_oep. Update all uses. + (cf_chr): Rename to cfv123_chr. Update all uses. + (cf_mem): Rename to cfv123_mem. Update all uses. + (cf_mac): Move to more appropriate place. + (cfv123_guess): New automaton and cpu_unit. + (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute. + Update uses of 'size' attribute. Handle before reload scheduling. + (cfv123_guess): New dummy reservation for unhandled instructions. + (cfv4_*): Pipeline description of ColdFire V4 core. + (ignore): New reservation to handle 'ignore' type. + +2008-05-07 Ian Lance Taylor + + PR middle-end/36013 + * gimplify.c (find_single_pointer_decl_1): Don't look through + indirections. + (find_single_pointer_decl): Adjust comments. + +2008-05-07 Jakub Jelinek + + PR middle-end/36137 + * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of + STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR. + + PR middle-end/36106 + * omp-low.c (expand_omp_atomic_pipeline): Load value using the + integral type rather than floating point, then VIEW_CONVERT_EXPR + to the floating point type. + +2008-05-07 Uros Bizjak + + * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant + TFmode op0 to register. + +2008-05-07 Alan Modra + + * c-decl.c (grokdeclarator): Comment typo. + +2008-05-06 Aldy Hernandez + + * tree-flow.h: Remove prototype for computed_goto_p. + * tree-cfg.c (computed_goto_p): Make static. + +2008-05-06 H.J. Lu + + PR target/35657 + * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ... + (contains_aligned_value_p): This. Handle _Decimal128. + (ix86_function_arg_boundary): Only align _Decimal128 to its + natural boundary and handle it properly. + +2008-05-06 Martin Jambor + + * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node. + (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone + (ipcp_method_set_orig_node): Removed. + (ipcp_cval_get_cvalue_type): Removed. + (ipcp_method_get_scale): Renamed to ipcp_get_node_scale. + (ipcp_method_set_scale): Renamed to ipcp_set_node_scale. + (ipcp_cval_set_cvalue_type): Removed. + (ipcp_cval_get_cvalue): Removed. + (ipcp_cval_set_cvalue): Removed. + (ipcp_type_is_const): Renamed to ipcp_lat_is_const. + (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal + (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's + (ipcp_cval_meet): Renamed to ipa_lattice_meet + (ipcp_cval_changed): Changed to use ipcp_lat_is_const + (ipcp_method_cval): Renamed to ipcp_get_ith_lattice + (ipcp_get_ith_lattice): Changed parameters. + (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc + (ipcp_lattice_from_jfunc): Changed parameters. + (ipcp_redirect): Local lattice pointer instead of lattice type variable. + (ipcp_method_cval_print): Added temporary variable info. + (ipcp_redirect): Removed already unused local variable caller. + (ipcp_redirect): New temporary variable orig_callee_info + (ipcp_redirect): Removed newly unused local variable callee. + (ipcp_redirect): Removed (a bit confusing) local variable type. + (ipcp_insert_stage): Added local variable info. + (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters + renamed too + (ipcp_formal_create): Removed. + (ipcp_method_cval_set): Removed. + (ipcp_propagate_stage): Renamed lattice variables. + (ipcp_method_cval_set_cvalue_type): Removed. + (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices + (ipcp_print_all_lattices): Changed printed strings to refer to + lattices rather than cvals. + (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices + (ipcp_propagate_const): Changed formal parameters. + (build_const_val): Changed formal parameters. + (ipcp_insert_stage): Removed useless variable cvalue + (build_const_val): Changed formal parameters. + (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale + (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom + (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions + (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts + (ipcp_print_func_profile_counts): Changed string from "method" to + "function" + (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts + (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles + (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles + (ipcp_structures_print): Renamed to ipcp_print_all_structures + (ipcp_profile_print): Renamed to ipcp_print_profile_data + (ipcp_lat_is_const): Changed parameters and made inline. + (ipcp_replace_map_create): Renamed to ipcp_create_replace_map + (ipcp_redirect): Renamed to ipcp_need_redirect_p + (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using + the predicate condition directly + (ipcp_propagate_stage): Added local variable args. Removed local + variable callee. (Both are mere code simplifications.) + (ipcp_method_dont_insert_const): Renamed to + ipcp_node_not_modifiable_p. + (ipcp_node_not_modifiable_p): Made inline. + (ipcp_cloned_create): Renamed to ipcp_init_cloned_node + (ipcp_propagate_const): Renamed to ipcp_propagate_one_const + (ipcp_print_all_lattices): Removed variable cvalue + (ipcp_method_scale_print): Renamed to ipcp_function_scale_print + Updated comments. + +2008-05-06 Olivier Hainque + + * tree-sra.c (try_instantiate_multiple_fields): Early return + if field has POINTER_TYPE. + +2008-05-06 Kai Tietz + + * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm + by using 'q' specifier for instruction. + (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT. + +2008-05-06 Anatoly Sokolov + + * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp): + Change mode of zero_extract from QImode to HImode. + (sign bit tests peepholes): (Ditto.). + +2008-05-06 Uros Bizjak + + * config/i386/mmx.md: Remove double backslashes from asm templates. + (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern. + (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy + to handle nonimmediate operands. + (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern. + (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy + to handle nonimmediate operands. + (*mmx_v2sf3_finite): New insn pattern. + (*mmx_v2sf3): Rename from mmx_v2sf3 insn pattern. + (mmx_v2sf3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (mmx_3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*mmx_3): New insn pattern. + (mmx_add3): Removed. + (mmx_ssadd3): Ditto. + (mmx_usadd3): Ditto. + (mmx_sub3): Ditto. + (mmx_sssub3): Ditto. + (mmx_ussub3): Ditto. + (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern. + (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy + to handle nonimmediate operands. + (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart + insn pattern. + (mmx_smulv4hi3_highpart): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart + insn pattern. + (mmx_umulv4hi3_highpart): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*mmx_v4hi3): Rename from mmx_v4hi3 insn pattern. + (mmx_v4hi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*mmx_v8qi3): Rename from mmx_v8qi3 insn pattern. + (mmx_v8qi3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + (*mmx_3): Rename from mmx_3 insn pattern. + (mmx_3): New expander. Use + ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. + +2008-05-05 Jan Hubicka + + PR tree-optimization/36118 + * passes.c (pass_init_dump_file): Fix dump header. + +2008-05-05 Andrew Pinski + + PR middle-end/36141 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create + VCE for function decls. + +2008-05-05 H.J. Lu + + * config/i386/sse.md (sse2_3): Fix a typo. + +2008-05-05 H.J. Lu + + * config/i386/i386.md (sat_plusminus): New. + (plusminus_insn): Likewise. + (plusminus_mnemonic): Likewise. + (addsub): Removed. + (comm): Add ss_plus, us_plus, ss_minus and us_minus. + (*3_cc_overflow): Renamed to ... + (*3_cc_overflow): This. + (*si3_zext_cc_overflow): Renamed to ... + (*si3_zext_cc_overflow): This. + + * config/i386/sse.md (3): Renamed to ... + (3): This. + (*3): Renamed to ... + (*3): This. + (_vm3): Renamed to ... + (_vm3): This. + (sse3_hv4sf3): Renamed to ... + (sse3_hv4sf3): This. + (sse3_hv2df3): Renamed to ... + (sse3_hv2df3): This. + (3): New. + (*3): Likewise. + (sse2_3): Likewise. + (add): Removed. + (*add3): Likewise. + (sse2_ssadd3): Likewise. + (sse2_usadd3): Likewise. + (sub3): Likewise. + (*sub3): Likewise. + (sse2_sssub3): Likewise. + (sse2_ussub3): Likewise. + +2008-05-05 Benjamin Kosnik + + * gthr-single.h: Add in required interface elements as per gthr.h. + Add stub types for __gthread_key_t, __gthread_once_t. Add defines + for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT. + Generalize UNUSED macro. + (__gthread_once): Add. + (__gthread_key_create): Add. + (__gthread_key_delete): Add. + (__gthread_getspecific): Add. + (__gthread_setspecific): Add. + +2008-05-05 Andrew Pinski + + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have + the same size types for the indirect reference on the rhs, then + create a VCE. + +2008-05-05 Uros Bizjak + + * config/i386/i386.md + (*float2_sse_interunit): Use only + one insn template instead of template series. + (*xordi_1_rex64): Ditto. + (*xordi_2_rex64): Ditto. + +2008-05-05 Ira Rosen + + PR tree-optimization/36119 + * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1 + in case of SLP. + +2008-06-04 Jan Hubicka + + tree-optimization/36100 + * tree-pass.h (pass_O0_always_inline): Declare. + * ipa-inline.c (inline_transform): Remove dead code. + (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, + pass_O0_always_inline): New. + * passes.c (init_optimization_passes): Add pass_O0_always_inline. + +2008-05-04 Kai Tietz + + * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative + mnemonic in this_param move for TARGET_64BIT. + +2008-05-04 Uros Bizjak + + * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives. + (*strmovsi_rex_1): Ditto. + (*strsetsi_1): Ditto. + (*strsetsi_rex_1): Ditto. + + (addcc): Macroize expander from addqicc, addhicc, addsicc and + adddicc expanders using SWI mode iterator. + +2008-05-04 H.J. Lu + + PR target/36121 + * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three + argument handling. + +2008-05-04 David S. Miller + + * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes. + (sparc*-*-linux*): Use linux.h in tm_file. + (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch + compiler defaulting to 32-bit. + (sparc*-*-*): Remove explicit target settings of need_64bit_hwint, + no longer needed. + * config/sparc/linux.h: Remove definitions now obtained + properly from linux.h + * config/sparc/linux64.h: Likewise. + (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we + don't want this setting for 32-bit builds in a biarch compiler. + * doc/install.texi: Add sparc-linux to list of targets + supporting --enable-targets=all. + +2008-05-03 Andrew Pinski + + * Makefile.in (tree-ssa-phiprop.o): Fix dependencies. + +2008-05-03 H.J. Lu + + * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF + after V4SI_FTYPE_V8HI. + (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after + case V4SI_FTYPE_V2DF. + +2008-05-03 Kenneth Zadeck + + * doc/invoke.texi (max-flow-memory-locations): Removed. + * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed. + +2008-05-03 Richard Guenther + + PR middle-end/34973 + * opts.c (set_Wstrict_aliasing): Handle the turn-off case. + +2008-05-02 David S. Miller + + * config.gcc (need_64bit_hwint): Document libcpp dependency. + +2008-05-02 Simon Baldwin + + PR bootstrap/36108 + * c-common.h (warn_array_subscript_range): Removed. + * c-common.c (warn_array_subscript_range): Ditto. + * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2. + * c-typeck.c (build_array_ref): Remove warn_array_subscript_range. + +2008-05-02 H.J. Lu + + * config/i386/i386.c (ix86_special_builtin_type): New. + (bdesc_special_args): Likewise. + (ix86_expand_special_args_builtin): Likewise. + (ix86_init_mmx_sse_builtins): Updated. + (ix86_expand_builtin): Updated. + (ix86_expand_store_builtin): Removed. + (ix86_expand_unop_builtin): Likewise. + + * config/i386/mm3dnow.h (__v2sf): Moved to ... + * config/i386/mmintrin.h (__v2sf): Here. + + * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with + const __v2sf. + (_mm_loadl_pi): Likewise. + (_mm_storeh_pi): Replace __v2si with __v2sf. + (_mm_storel_pi): Likewise. + + * doc/extend.texi: Correct __builtin_ia32_loadhps, + __builtin_ia32_loadlps, __builtin_ia32_storehps, + __builtin_ia32_storelps, __builtin_ia32_loadhpd and + __builtin_ia32_loadlpd. + +2008-05-02 H.J. Lu + + * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT, + V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE. + (bdesc_args): Updated. Add scalar SSE builtins with vec_merge. + (ix86_init_mmx_sse_builtins): Updated. + (ix86_expand_args_builtin): Likewise. + (ix86_expand_builtin): Likewise. + (ix86_expand_unop1_builtin): Renamed to ... + (ix86_expand_unop_vec_merge_builtin): This. + +2008-05-01 Jan Hubicka + + PR bootstrap/36100 + * ipa-inline.c (inline_generate_summary): Make static. + (inline_transform): Do not call inlining at -O0; make static. + * passes.c (execute_todo): Add sanity check. + (execute_one_ipa_transform_pass): Execute proper flags. + +2008-05-01 Eric Botcazou + + * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment. + (DECL_NONADDRESSABLE_P): Likewise. + * alias.c (record_component_aliases): Fix comment. + +2008-05-01 Simon Baldwin + + * c-common.h (warn_array_subscript_range): New function. + * c-common.c (warn_array_subscript_range): Ditto. + * tree-vrp.c (check_array_ref): Corrected code to agree with + comment, ignoring only arrays of size 0 or size 1. + * c-typeck.c (build_array_ref): Call warn_array_subscript_range. + +2008-05-01 H.J. Lu + + * config/i386/i386.c (ix86_builtin_type): Replace + DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT. + (bdesc_args): Updated. + (ix86_init_mmx_sse_builtins): Likewise. + (ix86_expand_args_builtin): Likewise. + + * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long + with __v1di. + + * doc/extend.texi: Correct __builtin_ia32_palignr. + +2008-05-01 H.J. Lu + + PR target/36095 + * config/i386/i386.c (bdesc_crc32): Removed. + (ix86_expand_crc32): Likewise. + (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with + V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with + V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64, + UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and + UINT_FTYPE_UINT_UCHAR. + (bdesc_args): Updated. Add crc32 builtins. + (ix86_init_mmx_sse_builtins): Updated. + (ix86_expand_args_builtin): Updated to support subreg. + + * doc/extend.texi: Correct __builtin_ia32_crc32di. + +2008-05-01 Jan Hubicka + + * tree-pass.h (opt_pass): Add IPA_PASS. + (varpool_node, cgraph_node): Forward declare. + (ipa_opt_pass): Define. + (pass_ipa_inline): Turn into ipa_opt_pass. + (pass_apply_inline): Remove. + * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass. + (apply_inline): Turn into .... + (inline_transform): ... this one. + (inline_generate_summary): New function. + (pass_apply_inline): Remove. + * function.h (ipa_opt_pass): Forward declare structure; typedef; + vector. + (struct function): Add ipa_transforms_to_apply. + * passes.c (register_one_dump_file): Work on IPA_PASS. + (init_optimization_passes): Remove pass_inline_parameters and + pass_apply_inline. + (pass_init_dump_file, pass_fini_dump_file): Break out from .... + (execute_one_pass) ... here; apply transforms when possible. + (add_ipa_transform_pass, execute_ipa_summary_asses, + execute_one_ipa_transform_pass): New. + (execute_ipa_pass_list): Update for IPA_PASS type. + +2008-05-01 H.J. Lu + + * config/i386/i386.c (ix86_builtin_type): Add + V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and + V2DI_FTYPE_V2DI_V2DI_UINT_UINT. + (bdesc_args): Add SSE4a builtins. + (ix86_init_mmx_sse_builtins): Updated. + (ix86_expand_args_builtin): Likewise. + (ix86_expand_builtin): Likewise. + +2008-05-01 H.J. Lu + + * config/i386/i386.c (ix86_builtin_type): Add + V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT, + V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT, + V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT, + V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT, + V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT, + V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT, + V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT, + V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT + and DI_FTYPE_DI_DI_INT. + (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins. + (ix86_init_mmx_sse_builtins): Updated. + (ix86_expand_args_builtin): Likewise. + (ix86_expand_builtin): Likewise. + (ix86_expand_binop_imm_builtin): Removed. + + * doc/extend.texi: Correct __builtin_ia32_palignr128. + +2008-04-30 Richard Guenther + + PR tree-optimization/32921 + * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA. + +2008-04-30 Richard Sandiford + + * config/arm/arm.c (arm_unwind_emit): Use + crtl->all_throwers_are_sibcalls instead of + cfun->all_throwers_are_sibcalls. + (arm_output_fn_unwind): Likewise. + * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table + instead of cfun->uses_pic_offset_table. + (frv_expand_prologue): Likewise. + (frv_frame_pointer_required): Likewise. + (frv_expand_fdpic_call): Likewise. + (frv_emit_movsi): Likewise. + * config/iq2000/iq2000.c (iq2000_expand_prologue): Use + cfun->returns_pcc_struct instead of + current_function_returns_pcc_struct. + * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return + instead of cfun->calls_eh_return. + (m32c_pushm_popm): Likewise. + * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus + "extern" declaration. + +2008-04-30 Richard Guenther + + PR tree-optimization/21636 + * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a + constant address. + (evaluate_stmt): Print the likely value. + (ccp_visit_stmt): Avoid excessive vertical spacing. + +2008-04-30 Rafael Espindola + + * builtins.c (fold_call_expr): Return realret. + * tree-ssa-threadedge.c + (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to + __builtin_object_size. + +2008-04-30 Seongbae Park + + * gcc.c (wrapper_string): New variable. + (insert_wrapper): New function. + (execute): New option -wrapper. + * doc/invoke.texi (Overall Options): New driver option -wrapper. + +2008-04-30 Nathan Froyd + + * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm, + config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm, + config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out + from... + * config/rs6000/crtsavres.asm: ...here. Remove unneeded file. + * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm, + config/rs6000/e500crtres64gprctr.asm, + config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm, + config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm, + config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm, + config/rs6000/e500crtsav64gprctr.asm, + config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm, + config/rs6000/e500crtsavg64gprctr.asm: New files. + * config/rs6000/t-ppccomm: Add build rules for new files. + (LIB2FUNCS_STATIC_EXTRA): Add new files. + * config/rs6000/t-netbsd: Add build rules for new files. + (LIB2FUNCS_STATIC_EXTRA): New variable. + * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o + (CRTSAVRES_DEFAULT_SPEC): Likewise. + * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise. + +2008-04-30 H.J. Lu + + * config/i386/i386.c (ix86_builtin_type): Add + FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI, + V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI, + V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI, + V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI, + V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI, + V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF, + V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI, + V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF, + V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI, + V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI, + V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI, + V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI, + V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI, + V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF, + V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP, + V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI, + V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF, + V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and + V1DI_FTYPE_V2SI_V2SI. + (bdesc_2arg): Moved to ... + (bdesc_args): Here. + (ix86_init_mmx_sse_builtins): Updated. + (ix86_expand_args_builtin): Updated. Take a pointer + to const struct builtin_description. Handle comparison + builtin functions. + (ix86_expand_sse_compare): Take a new argument for swapping operands. + (ix86_expand_builtin): Updated. + + * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ... + (ssse3_pmaddubsw128): This. + (ssse3_pmaddubswv4hi3): Renamed to ... + (ssse3_pmaddubsw): This. + + * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype. + (__builtin_ia32_packssdw128): Likewise. + (__builtin_ia32_packuswb128): Likewise. + (__builtin_ia32_pmaddubsw): Likewise. + (__builtin_ia32_pmaddubsw128): Likewise. + +2008-04-30 Richard Guenther + + PR tree-optimization/14847 + * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function. + (recognize_bits_test): Use it. + (recognize_single_bit_test): Likewise. + +2008-04-30 Martin Jambor + + * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg + instead of setting number of formal parameters to zero. + (ipcp_init_stage): Do not set the number of actual parameters to zero + either. + (ipcp_propagate_stage): Explicitly skipping all calls to nodes + which are called with variable number of arguments. + (ipcp_insert_stage): Explicitely skipping all nodes which are + called with variable number of arguments. + (ipcp_callsite_param_print): Skipps callsites to nodes with varaible + number of parameters. + + * ipa-prop.h (struct ipa_node_params): Added flag + called_with_var_arguments + (ipa_set_param_count): Added. Changed sole setter to use it. + (ipa_get_param_count): Added. All readers of param_count + converted to use it instead. + (ipa_set_called_with_variable_arg): Added. + (ipa_is_called_with_var_arguments): Added. + (ipa_get_ith_param): Added. All readers of param_decls converted + to use it instead. + (ipa_set_cs_argument_count): Added, sole writer to argument_count + changed to use it. + (ipa_get_cs_argument_count): Added, all readers of argument_count + changed to cal it. + (ipa_get_ith_jump_func): Added. Accessors of jump values changed + to use it. + + * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice + (struct ipcp_lattice): Renamed cval_type to type + (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices + + * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree + (ipcp_cval_set_cvalue): Changed type of parameter value to tree + (ipcp_insert_stage): Changed the type of variable cvalue to tree + (ipcp_replace_map_create): Changed the type of parameter cvalue to tree + (build_const_val): Changed the type of parameter cvalue to tree + (ipcp_propagate_const): Changed the type of parameter cvalue to tree + (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type + + * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called + constant + + * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list + (ipa_methodlist_not_empty): Removed, the sole user now checks directly + (ipa_add_method): Renamed to ipa_push_func_to_list + (ipa_remove_method): Renamed to ipa_pop_func_from_list + (ipa_callsite_param_count): Removed. + (ipa_callsite_param_count_set): Removed. + (ipa_callsite_param): Removed. + (ipa_callsite_callee): Removed. + (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions + (ipa_callsite_compute_count): Renamed to ipa_count_arguments + (ipa_method_formal_count): Removed. + (ipa_method_formal_count_set): Removed. + (ipa_method_get_tree): Removed. + (ipa_method_tree_map_create): Removed. + (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array + (ipa_create_param_decls_array): Creates the array itself + (ipa_create_param_decls_array): Temporary variable info instead of + a few dereferences. + (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params + (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications + (get_type): Removed. + (ipa_jf_get_info_type): Removed. + (ipa_node_create): Renamed to ipa_create_node_params + (ipa_free): Renamed to ipa_free_all_node_params + (ipa_nodes_create): Renamed to ipa_create_all_node_params + (ipa_edges_create): Renamed to ipa_create_all_edge_args + (ipa_edges_free): Renamed to ipa_free_all_edge_args + (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed + (ipa_free_all_node_params): Deallocation to jump_functions moved to + ipa_free_all_edge_args + (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps + (ipa_method_modify_print): Renamed to ipa_print_all_params_modified + (ipa_create_methodlist_node): Removed. + (ipa_methodlist_method): Removed. + (ipa_methodlist_method_set): Removed. + (ipa_methodlist_next_method): Removed. + (ipa_methodlist_next_method_set): Removed. + (ipa_method_is_modified): Removed. + (ipa_method_modify_create): Removed. + (ipa_method_modify_init): Temporary variable info instead of a few + dereferences. + (ipa_detect_param_modifications): Temporary variable info instead of + a few dereferences. + (ipa_compute_jump_functions): Temporary variable info instead of + a few dereferences. + (ipa_method_modify_set): Removed. + (ipa_method_tree_map): Renamed to ipa_get_param_decl_index + (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather + than craph_node as the first parameter. + (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications + (ipa_method_modify_init): Removed. + (ipa_compute_jump_functions): Added a temp variable instead of + repeatadly dereferencing the cgraph_edge.aux pointer + (ipa_callsite_param_set_type): Removed. + (ipa_compute_jump_functions): i renamed to index and moved to + an inner block + (ipa_callsite_param_set_info_type_formal): Removed. + (ipa_callsite_param_set_info_type): Removed. + (ipa_callsite_param_map_create): Removed. + (ipa_callsite_tree): Removed. + (ipa_callsite_caller): Removed. + (ipa_pop_func_from_list): return_method removed to return_func + + * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type, + prefixed all values with IPA_. Changed all users. + (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, + CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF + and FORMAL_IPATYPE IPA_PASS_THROUGH. + (union parameter_info): Renamed to jump_func_value. + (union jump_func_value): Renamed value to constant + (struct ipa_jump_func): Renamed info_type to value + (struct ipa_node): Renamed to ipa_node_params + (struct ipa_node_params): Renamed ipa_arg_num to param_count + (struct ipa_node_params): Renamed ipa_param_tree to param_decls + (struct ipa_node_params): Renamed ipa_mod to modified_flags + (struct ipa_edge): Renamed to ipa_edge_args + (struct ipa_edge_args): Renamed ipa_param_num to argument_count + (struct ipa_edge_args): Renamed ipa_param_map to jump_functions + (struct ipa_methodlist): Renamed to ipa_func_list + (struct ipa_func_list): method_p renamed to node, next_method + renamed to next + (ipa_methodlist_p): Removed, switched all users to struct pointer + (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX + +2008-04-30 Alan Modra + + * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define. + (rs6000_emit_epilogue): Use backchain to restore only when we + have a large frame. Make use of frame pointer to restore if we + have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP. + +2008-04-29 Paolo Bonzini + + * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp): + Add mode to zero_extract. + (sign bit tests peepholes): (Ditto.). + +2008-04-29 H.J. Lu + + * config/i386/i386.c (ix86_builtins): Replace Prescott New + Instructions in comments with SSE3. + (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128, + INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI, + INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF, + V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI, + V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI, + V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF, + V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI, + V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI, + V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF, + V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI, + V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF, + V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI. + (bdesc_sse_args): Renamed to ... + (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP, + IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW, + IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and + IX86_BUILTIN_FABSQ. + (bdesc_1arg): Moved to ... + (bdesc_args): Here. + (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New + Instructions in comments with SSE3. + (ix86_expand_sse_operands_builtin): Renamed to ... + (ix86_expand_args_builtin): This. Updated. + (ix86_expand_unop1_builtin): Update comments. + (ix86_expand_builtin): Updated. + +2008-04-29 Richard Guenther + + PR tree-optimization/36078 + * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): + Update virtual SSA form after cleaning up the CFG. + +2008-04-29 Richard Guenther + + PR middle-end/15255 + * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C. + +2008-04-29 Richard Guenther + + * tree-ssa-alias.c (finalize_ref_all_pointers): Remove. + (compute_may_aliases): Do not call finalize_ref_all_pointers. + (compute_flow_insensitive_aliasing): Do not treat + PTR_IS_REF_ALL pointers special. + (get_smt_for): Likewise. + (may_alias_p): Re-structure. + (is_escape_site): A ref-all pointer conversion is not an escape site. + * tree-ssa-structalias.c (find_what_p_points_to): Do not treat + PTR_IS_REF_ALL pointers special. + * tree-ssa-structalias.h (struct alias_info): Remove + ref_all_symbol_mem_tag field. + (PTR_IS_REF_ALL): Remove. + +2008-04-29 Richard Guenther + + PR middle-end/36077 + * fold-const.c (extract_muldiv_1): In combining division constants + make sure to never overflow. + +2008-04-29 Nick Clifton + + * doc/tm.texi (RETURN_ADDR_RTX): Fix typo. + +2008-04-28 Ralf Wildenhues + + PR bootstrap/35169 + * optc-gen.awk: Work around HP-UX/IA awk bug. + +2008-04-28 Danny Smith + + * config/i386/cygming-crtend.c (register_frame_ctor): Revert my + 2008-04-25 commit. + +2008-04-28 Uros Bizjak + + PR target/36073 + * config/i386/i386.md + (*float2_mixed_interunit): + Change operand 1 predicate to nonimmediate_operand. + +2008-04-28 Jakub Jelinek + + PR debug/36060 + * dwarf2out.c (struct die_struct): Mark as chain_circular through + die_sub field. + * gengtype.c (walk_type, write_func_for_structure): Handle + chain_circular. + * doc/gty.texi: Document chain_circular. + +2008-04-28 Richard Guenther + + PR tree-optimization/36066 + * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing + SCEV and loop. + +2008-04-28 Uros Bizjak + + PR target/36064 + * config/i386/i386.md + (floatdi2_i387_with_xmm splitters): + Use match_scratch instead of match_operand for operands 3 and 4. + +2008-04-27 Richard Guenther + + PR tree-optimization/18754 + PR tree-optimization/34223 + * tree-pass.h (pass_complete_unrolli): Declare. + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print + loop size before and after unconditionally of UL_NO_GROWTH in effect. + Rewrite loop into loop closed SSA form if it is not already. + (tree_unroll_loops_completely): Re-structure to iterate over + innermost loops with intermediate CFG cleanups. + Unroll outermost loops only if requested or the code does not grow + doing so. + * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no + loops are available. + (tree_vectorize): Instead do so here. + (tree_complete_unroll): Also unroll outermost loops. + (tree_complete_unroll_inner): New function. + (gate_tree_complete_unroll_inner): Likewise. + (pass_complete_unrolli): New pass. + * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record + uses outside of the loop. + (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA + form if it is available. + * tree-flow.h (tree_unroll_loops_completely): Add extra parameter. + * passes.c (init_optimization_passes): Schedule complete inner + loop unrolling pass before the first CCP pass after final inlining. + +2008-04-27 Nathan Sidwell + + * targhooks.h (default_emutls_var_fields, + default_emutls_var_init): Declare. + * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL. + * target.h (struct gcc_target): Add struct emutls member. + * target-def.h (TARGET_EMUTLS_GET_ADDRESS, + TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION, + TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX, + TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS, + TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS, + TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New. + (TARGET_INITIALIZER): Add TARGET_EMUTLS. + * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS, + BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure. + * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can + emit debug information. + * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL. + * varasm.c: Include targhooks.h. + (emutls_object_section, emutls_tmpl_section): New. + (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove. + (EMUTLS_SEPARATOR): New. + (prefix_name): New. + (get_emutls_object_name): New. + (default_emutls_var_fields): New, broken out of ... + (get_emutls_object_type): ... here. Adjust to use target hooks. + (get_emutls_init_templ_addr): Adjust to use target hooks. + (emutls_decl): Adjust to use target hooks. + (emutls_finish): Likewise. + (default_emutls_var_init): New, broken out of ... + (assemble_variable): ... here. Adjust to use target hooks. + * output.h (enum section_category): Add SECCAT_EMUTLS_VAR, + SECCAT_EMUTLS_TMPL. + * c-common.c (handle_section_attribute): Prevent overriding + sections for emulated tls with special sections. + * config/i386/i386.c (x86_64_elf_select_section): Add + SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL. + (x86_64_elf_unique_section): Likewise. + * config/vxworks.c: Include tree.h. + (vxworks_emutls_var_fields, vxworks_emutls_var_init): New. + (vxworks_override_options): Set TLS scheme. + * doc/tm.texi (Emulated TLS): New node. + +2008-04-26 Simon Baldwin + + PR c/35652 + * builtins.c (c_strlen): Suppressed multiple warnings that can occur + with propagated string constants. + +2008-04-26 Uros Bizjak + + * config/i386/i386.md (fix_trunc_i387_fisttp_with_temp): Use 'X' + constraint for operand 2 when operand 0 is memory operand. + (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when + operand 0 is memory operand. + (fix_trunc_i387_with_temp): Ditto. + (*floatsi2_vector_mixed_with_temp): Use 'X' constraint for + operand 2 when operand 1 is memory operand. + (*float2_mixed_with_temp): Ditto. + (*floatsi2_vector_sse_with_temp): Ditto. + (*float2_sse_with_temp): Ditto. + (*float2_i387_with_temp): Ditto. + (floatdi2_i387_with_xmm): Use 'X' constraint for + operands 2,3 and 4 when operand 1 is memory operand. + (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0 + is memory operand. + (fistdi2_floor_with_temp): Ditto. + (fist2_floor_with_temp): Ditto. + (fistdi2_ceil_with_temp): Ditto. + (fist2_ceil_with_temp): Ditto. + (*truncdfsf_fast_mixed): Merge alternatives 0 and 1. + +2008-04-26 David Daney + + * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New + unspec_volitile. + (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE, + UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION, + UNSPEC_UPDATE_GOT_VERSION): Renumber. + (sync_compare_and_swap): New expand for QI and HI modes. + (compare_and_swap_12): New insn. + * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare. + * config/mips/mips.c (mips_force_binary): New function. + (mips_emit_int_order_test, mips_expand_synci_loop): Use it. + (mips_expand_compare_and_swap_12): New function. + * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro. + 2008-04-25 Jan Hubicka PR testsuite/35843 @@ -253,8 +1580,7 @@ 2008-04-25 H.J. Lu - * config/i386/sse.md (mov): Replace SSEMODEI with - SSEMODE. + * config/i386/sse.md (mov): Replace SSEMODEI with SSEMODE. (*mov_internal): Likewise. Support V4SF and V2DF. (mov): Removed. (*movv4sf_internal): Likewise. @@ -484,7 +1810,7 @@ * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost of LR/CTR moves for Power6. -2008-04-22 Kenneth Zadeck +2008-04-22 Kenneth Zadeck PR middle-end/36003 * passes.c (init_optimization_passes): Remove @@ -569,14 +1895,14 @@ * coverage.c: Include tree-pass.h. (coverage_counter_alloc): Print da_file_name to the dump file. -2008-04-21 Kenneth Zadeck +2008-04-21 Kenneth Zadeck * sbitmap.c (sbitmap_range_empty_p): New function. * sbitmap.h (sbitmap_range_empty_p): New function. * bitmap.h: Now includes obstack.h. 2008-04-21 Richard Sandiford - Kenneth Zadeck + Kenneth Zadeck * dbgcnt.def (ra_byte_scan): Added. * dbgcnt.c (dbg_cnt): Added code to print message to dump_file @@ -1455,7 +2781,7 @@ * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output control string instead of quoted. -2008-04-07 Kenneth Zadeck +2008-04-07 Kenneth Zadeck * doc/rtl.texi: Rewrite of subreg section. @@ -2064,10 +3390,7 @@ 2008-04-01 George Helffrich - PR fortran/PR35154, fortran/PR23057 - * fortran/trans-common.c (create_common): Add decl to function - chain to preserve identifier scope in debug output. - + PR fortran/35154, fortran/23057 * dbxout.c: Emit .stabs debug info for Fortran COMMON block variables as base symbol name + offset using N_BCOMM/N_ECOMM. (is_fortran, dbxout_common_name, dbxout_common_check): New functions. @@ -2085,18 +3408,6 @@ (common_check): New function to check whether symbol in Fortran COMMON. (gen_variable_die): If COMMON, use DW_TAG_common_block. - * testsuite/gcc.dg/debug/pr35154.c: New test to check that non-Fortran - use of common is unchanged. - - * testsuite/lib/gfortran-dg.exp: New harness to compile Fortran progs - with all combinations of debug options available on target. - * testsuite/gfortran.dg/debug/debug.exp: Ditto. - * testsuite/gfortran.dg/debug/trivial.f: Ditto. - * testsuite/gfortran.dg/debug/pr35154-stabs.f: New test case for - .stabs functionality. - * testsuite/gfortran.dg/debug/pr35154-dwarf2.f: New test case for - DWARF functionality. - 2008-04-01 Volker Reichelt PR c/35436 @@ -4071,7 +5382,7 @@ * alias.h (alias_set_type): Change from HOST_WIDE_INT to int. -2008-03-05 Kenneth Zadeck +2008-03-05 Kenneth Zadeck * fwprop.c (update_df): Support width and offset parameters of df_ref_create. @@ -5914,7 +7225,6 @@ * config/spu/spu-builtins.def: Fixed wrong parameter type in spu intrinsics spu_convts, spu_convtu, spu_convtf. - * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages. 2008-02-08 Hans-Peter Nilsson @@ -6736,7 +8046,7 @@ * common.opt (Wstrict-aliasing): Specify Var and Init. (Wstrict-overflow): Likewise. -2008-01-22 Kenneth Zadeck +2008-01-22 Kenneth Zadeck PR rtl-optimization/26854 PR rtl-optimization/34400 @@ -6833,7 +8143,7 @@ * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation when the structure size is not a power of 2. -2008-01-20 Kenneth Zadeck +2008-01-20 Kenneth Zadeck * doc/install.texi: Add doc for --enable-checking=df. @@ -6847,7 +8157,7 @@ * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per input. -2008-01-19 Kenneth Zadeck +2008-01-19 Kenneth Zadeck PR rtl-optimization/26854 PR rtl-optimization/34400