2008-02-08 Steven Bosscher PR middle-end/34627 * combine.c (simplify_if_then_else): Make sure the comparison is against const0_rtx when simplifying to (abs x) or (neg (abs X)). 2008-02-08 Richard Sandiford PR bootstrap/35051 * double-int.h: Don't include gmp.h for GENERATOR_FILEs. (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs. * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs. (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs. * tree.h (get_type_static_bounds): Likewise. 2008-02-08 Ralf Wildenhues * doc/invoke.texi (Option Summary, C++ Dialect Options) (Objective-C and Objective-C++ Dialect Options, Warning Options): Make -Wfoo language annotations match what the compiler outputs. 2008-02-08 Sa Liu * 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 * doc/extend.texi (Function Attributes) : Mention asm ("") as method to keep calls. 2008-02-07 Manuel Lopez-Ibanez PR other/32754 * doc/options.texi (Options): Replace references to opts.sh with optc-gen.awk. * opts-common.c: Likewise. * optc-gen.awk: Likewise. 2008-02-07 Andreas Krebbel * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit. 2008-02-07 Richard Henderson PR rtl-opt/33410 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an EXPR_LIST for the REG_EQUAL instead of a comparison with a funny mode. 2008-02-07 Uros Bizjak PR tree-optimization/35085 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update for operand entry oe2 in addition to operand entry oe3 in order to expose more opportunities for vectorizer sum reduction. 2008-02-06 Kaveh R. Ghazi PR other/35107 * Makefile.in (LIBS): Remove $(GMPLIBS). (cc1-dummy, cc1): Add $(GMPLIBS). 2008-02-06 Jan Hubicka PR target/23322 * i386.md (moddf_integer): Do not produce partial memory stalls for targets where it hurts. 2008-02-06 Uros Bizjak PR target/35083 * optabs.c (expand_float): Do not check for decimal modes when expanding unsigned integer through signed conversion. 2008-02-06 Nick Clifton * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup inside the clobber with a match_operand and duplicated operand number in the constraint. (ineqbranchsi): Delete redundant comment. 2008-02-06 Ralf Corsepius * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add builtin_define ("__USE_INIT_FINI__"). * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add -msx multilibs. * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT. 2008-02-06 Ralf Wildenhues PR documentation/30330 * doc/invoke.texi (C++ Dialect Options) (Objective-C and Objective-C++ Dialect Options, Warning Options): For each warning option -Wfoo that allows -Wno-foo, ensure both -Wfoo and -Wno-foo are listed in the option index. Fix index entry of -Wswitch-default, index -Wnormalized= including the `=', and -Wlarger-than-@var{len} including @var{len}. 2008-02-05 Uros Bizjak * config/i386/i386.md (floatunssisf2): Use ix86_expand_convert_uns_sisf_sse also for TARGET_SSE. (floatunssi2): Rename from floatunssisf2 and floatunssidf2. Macroize expander using MODEF mode iterator. 2008-02-05 Diego Novillo http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html PR 33738 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738. 2008-02-05 Kaveh R. Ghazi PR other/35070 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings. 2008-02-05 H.J. Lu PR target/35084 * config/i386/i386.c (ix86_function_sseregparm): Add an arg to indicate if a message should be generated. (init_cumulative_args): Updated. (function_value_32): Likewise. 2008-02-05 Joseph Myers * doc/include/texinfo.tex: Update to version 2008-02-04.16. 2008-02-05 Uros Bizjak PR target/35083 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only. Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2. 2008-02-04 Diego Novillo http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html PR 33738 * tree-vrp.c (vrp_evaluate_conditional): With -Wtype-limits, emit a warning when comparing against a constant outside the natural range of OP0's type. 2008-02-04 Richard Guenther PR middle-end/33631 * expr.c (count_type_elements): Give for unions instead of guessing. 2008-02-04 Richard Guenther PR middle-end/35043 * gimplify.c (gimplify_init_ctor_eval): Convert array indices to TYPE_DOMAINs base type instead of using bitsizetype here. 2008-02-03 Jason Merrill * print-tree.c (print_node) [CONSTRUCTOR]: Print elements. 2008-02-04 Ralf Wildenhues PR other/29972 * doc/invoke.texi (C++ Dialect Options, Optimize Options) (HPPA Options, i386 and x86-64 Options, IA-64 Options) (RS/6000 and PowerPC Options): Fix typos and markup. * doc/passes.texi (Tree-SSA passes): Likewise. 2008-02-02 Michael Matz PR target/35045 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed from record_last_reg_set_info. (record_last_reg_set_info): Take an RTX argument, iterate over all constituent hardregs. (record_last_set_info, record_opr_changes): Change calls to new signature or to record_last_reg_set_info_regno. 2008-02-02 Gerald Pfeifer * doc/extend.texi (X86 Built-in Functions): Fix grammar. 2008-02-01 Hans-Peter Nilsson PR rtl-optimization/34773 * reg-notes.def (EQUAL): Mention significance of combination of REG_EQUAL and REG_RETVAL. * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an insn that has a REG_RETVAL. 2008-02-01 Roger Sayle PR bootstrap/33781 * configure.ac (--enable-fixed-point): Disable unless explicitly requested on IRIX. * configure: Regenerate. 2008-02-01 Richard Guenther PR other/35042 * invoke.texi (-finline-limit): Remove no longer true parts of the documentation. Note that there is no default value. 2008-02-01 Andrew Pinski Mark Mitchell Ben Elliston PR c/29326 * doc/extend.texi (Other Builtins): Document. 2008-01-31 Tom Browder * doc/c-tree.texi (Types): Fix grammar. (Expression trees): Ditto. * doc/passes.texi (Tree-SSA passes): Ditto. * doc/configterms.texi (Configure Terms): Fix typo. * doc/cpp.texi (Common Predefined Macros): Ditto. * doc/md.texi (Machine Constraints): Ditto. * doc/makefile.texi (Makefile): Add comma. 2008-01-31 Tom Browder Gerald Pfeifer * doc/sourcebuild.texi (Front End): Remove references to CVS and CVSROOT/modules. (Texinfo Manuals): Replace reference to CVS by one to SVN. (Back End): Remove reference to CVS. 2008-01-31 Richard Sandiford PR target/34900 * config/mips/mips.c (gen_load_const_gp): New function, taking a comment from... (mips16_gp_pseudo_reg): ...here. * config/mips/mips.md (load_const_gp): Replace with... (load_const_gp_): ...this :P-based insn. 2008-01-31 Manuel Lopez-Ibanez * doc/invoke.texi (-ansi): Mention explicitly corresponding -std= options. Minor fixes. (-std): Move reference to standards closer to where language standards are first mentioned. 2008-01-31 Richard Sandiford PR rtl-optimization/34995 * reload.c (alternative_allows_const_pool_ref): Take an rtx parameter and return a bool. If the rtx parameter is nonnull, check that it satisfies an EXTRA_MEMORY_CONSTRAINT. (find_reloads): Update call accordingly. Pass the new operand if it needed no address reloads, otherwise pass null. 2008-01-30 Richard Henderson PR c/34993 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN for unbounded arrays. 2008-01-30 Silvius Rus * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg. 2008-01-30 Jan Hubicka PR target/34982 * i386.c (init_cumulative_args): Use real function declaration when calling locally. 2008-01-30 Richard Sandiford PR rtl-optimization/34998 * global.c (build_insn_chain): Treat non-subreg_lowpart SUBREGs of pseudos as clobbering all the words covered by the SUBREG, not just all the bytes. * ra-conflict.c (clear_reg_in_live): Likewise. Take the original df_ref rather than an extract parameter. (global_conflicts): Update call accordingly. 2008-01-30 Andreas Krebbel * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange the overflow check to make it easier to read. (__fixtfdi): Change the type of the ll member in union long_double to UDItype_x. 2008-01-30 Jakub Jelinek PR middle-end/34969 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype. * cgraph.c (cgraph_update_edges_for_call_stmt): New function. * tree-inline.c (fold_marked_statements): Call cgraph_update_edges_for_call_stmt if folding a call statement. * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for debug_generic_stmt calls, reset it back afterwards. PR c/35017 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY static decls. * c-typeck.c (build_external_ref): Don't pedwarn about static vars in current function's scope. 2008-01-29 Joseph Myers * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation. 2008-01-29 Bernhard Fischer PR c/35002 * ipa-struct-reorg.c: Fix spelling. * params.def: Ditto. 2008-01-29 Richard Guenther PR middle-end/35006 * tree-inline.h (struct copy_body_data): Add remapping_type_depth field. * tree-inline.c (remap_type): Increment remapping_type_depth around remapping types. (copy_body_r): Only add referenced variables if they are referenced from code, not types. 2008-01-29 Douglas Gregor PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-28 Andy Hutchinson PR target/34412 * config/avr/avr.c (expand_prologue): Use correct QI mode frame pointer for tiny stack. 2008-01-28 Bernhard Fischer * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording. 2008-01-28 Bernhard Fischer * config/vx-common.h: Fix typo in comment. 2008-01-28 Ian Lance Taylor PR c++/34862 PR c++/33407 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't coalesce pointers if they have different DECL_NO_TBAA_P values. * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies between variables with different DECL_NO_TBAA_P values. 2008-01-28 Nathan Froyd PR 31535 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats are not legitimate small data references on SPE targets. 2008-01-28 David Daney * doc/install.texi (mips-*-*): Recommend binutils 2.18. 2008-01-28 David Daney * doc/install.texi (--disable-libgcj-bc): Reword documentation. 2008-01-27 Joseph Myers * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*, m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*, *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout, hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*, i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*, i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*, vax-*-bsd*, vax-*-ultrix*): Mark obsolete. 2008-01-27 Bernhard Fischer * basic-block.h (condjump_equiv_p): Fix comment. 2008-01-27 Bernhard Fischer * tree-pretty-print.c (print_generic_decl, print_generic_stmt, print_generic_stmt_indented): Fix comment. 2008-01-27 Bernhard Fischer * configure.ac (__stack_chk_fail): Add detecion for availability of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined. * configure: Regenerate. 2008-01-26 Maxim Kuvyrkov PR middle-end/34688 * final.c (output_addr_const): Handle TRUNCATE. 2008-01-26 Zdenek Dvorak PR target/34711 * tree-ssa-loop-ivopts.c (comp_cost): New type. (zero_cost, infinite_cost): New constants. (struct cost_pair): Change type of cost to comp_cost. (struct iv_ca): Change type of cand_use_cost and cost to comp_cost. (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p): New functions. (set_use_iv_cost, force_expr_to_var_cost, force_var_cost, split_address_cost, ptr_difference_cost, difference_cost, get_computation_cost_at, get_computation_cost, determine_use_iv_cost_generic, determine_use_iv_cost_address, determine_use_iv_cost_condition, determine_use_iv_costs, cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set): Change type of cost to comp_cost. (determine_iv_cost): Increase cost of non-original ivs, instead of decreasing the cost of original ones. (get_address_cost): Indicate the complexity of the addressing mode in comp_cost. (try_add_cand_for): Prefer using ivs not specific to some object. * tree-flow.h (force_expr_to_var_cost): Declaration removed. 2008-01-26 Peter Bergner Janis Johnson PR target/34814 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document. (TARGET_INSTANTIATE_DECLS): Likewise. * target.h (expand_to_rtl_hook): New target hook. (instantiate_decls): Likewise. * function.c (instantiate_decl): Make non-static. Rename to... (instantiate_decl_rtl): ... this. (instantiate_expr): Use instantiate_decl_rtl. (instantiate_decls_1): Likewise. (instantiate_decls): Likewise. (instantiate_virtual_regs: Call new instantiate_decls taget hook. * function.h (instantiate_decl_rtl): Add prototype. * cfgexpand.c (target.h): New include. (tree_expand_cfg): Call new expand_to_rtl_hook target hook. * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define. (TARGET_INSTANTIATE_DECLS): Likewise. (TARGET_INITIALIZER): New target hooks added. * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx): New prototype. * config/rs6000/rs6000.c (tree-flow.h): New include. (machine_function): Add sdmode_stack_slot field. (rs6000_alloc_sdmode_stack_slot): New function. (rs6000_instantiate_decls): Likewise. (rs6000_secondary_memory_needed_rtx): Likewise. (rs6000_check_sdmode): Likewise. (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined. (TARGET_INSTANTIATE_DECLS): Likewise. (rs6000_hard_regno_mode_ok): Allow SDmode. (num_insns_constant): Likewise. Handle _Decimal32 constants. (rs6000_emit_move): Handle SDmode. (function_arg_advance): Likewise. (function_arg): Likewise. (rs6000_gimplify_va_arg): Likewise. Add special handling of SDmode var args for 32-bit compiles. (rs6000_secondary_reload_class): Handle SDmode. (rs6000_output_function_epilogue): Likewise. (rs6000_function_value): Simplify if statement. (rs6000_libcall_value): Likewise. * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode. (SECONDARY_MEMORY_NEEDED_RTX): Add define. * config/rs6000/dfp.md (movsd): New define_expand and splitter. (movsd_hardfloat): New define_insn. (movsd_softfloat): Likewise. (movsd_store): Likewise. (movsd_load): Likewise. (extendsddd2): Likewise. (extendsdtd2): Likewise. (truncddsd2): Likewise. (movdd_hardfloat64): Fixup comment. (UNSPEC_MOVSD_LOAD): New constant. (UNSPEC_MOVSD_STORE): Likewise. 2008-01-26 Jakub Jelinek PR c++/34965 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle TRUTH_XOR_EXPR. (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR. (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR. (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. 2008-01-26 David Edelsohn PR target/34794 * config.gcc: Separate AIX 5.3 from AIX 6.1. * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define __LONGDOUBLE128 too. * config/rs6000/aix61.h: New file. 2008-01-26 Richard Sandiford PR rtl-optimization/34959 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz, popcount and parity rtxes the same mode as their operand. Truncate or extend the result to the return value's mode if necessary. 2008-01-26 Richard Sandiford PR target/34981 * config/mips/mips-protos.h (mips_expand_call): Return an rtx. * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO to GOT_VERSION_REGNUM. (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0. (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT. * config/mips/mips.c (mips_emit_call_insn): New function. (mips_call_tls_get_addr): Call mips_expand_call directly. (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than emit_call_insn. (mips16_build_call_stub): Likewise. Return the call insn or null. (mips_expand_call): Update the call to mips16_build_call_stub accordingly and a remove redundant condition. Assert that MIPS16 stubs do not use lazy binding. Use mips_emit_call_insn and return the call insn. (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if TARGET_USE_GOT. (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM. (mips_avoid_hazard): Remove hazard_set handling. * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to... (UNSPEC_RESTORE_GP): ...this. (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants. (FAKE_CALL_REGNO): Rename to... (GOT_VERSION_REGNUM): ...this. (type): Add "ghost" value. Add an associated insn reservation. (hazard_set): Remove. (exception_receiver): Rename to... (restore_gp): ...this and update the unspec identifier accordingly. (exception_receiver, nonlocal_got_receiver): New expanders. (load_call): Use GOT_VERSION_REGNUM. Don't set FAKE_CALL_REGNO. Remove hazard_set attribute. (set_got_version, update_got_version): New patterns. 2008-01-26 Danny Smith PR target/34970 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define. 2008-01-25 Joseph Myers PR other/31955 * doc/install.texi2html: Generate gcc-vers.texi. 2008-01-25 DJ Delorie * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. 2008-01-25 Joseph Myers * config/c4x: Remove directory. * config.gcc (crx-*, mt-*): Mark obsolete. (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*, h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*, sh-*-rtemscoff*): Remove cases. * defaults.h (C4X_FLOAT_FORMAT): Remove. * real.c (encode_c4x_single, decode_c4x_single, encode_c4x_extended, decode_c4x_extended, c4x_single_format, c4x_extended_format): Remove. * real.h (c4x_single_format, c4x_extended_format): Remove. * doc/extend.texi (interrupt, naked): Remove mention of attributes on C4x. (Pragmas): Remove comment about c4x pragmas. * doc/install.texi (c4x): Remove target-specific instructions. * doc/invoke.texi (TMS320C3x/C4x Options): Remove. * doc/md.texi (Machine Constraints): Remove C4x documentation. * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not refer to C4x source files as examples. (C4X_FLOAT_FORMAT): Remove documentation. 2008-01-25 Bernd Schmidt * config/bfin/bfin.c (override_options): Reorder tests so that flag_pic gets enabled for -msep-data. 2008-01-25 Richard Guenther PR middle-end/32244 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR to its bitfield precision if required. 2008-01-25 Jakub Jelinek PR middle-end/33880 * tree-nested.c (walk_omp_for): New function. (convert_nonlocal_reference, convert_local_reference): Call walk_omp_for on OMP_FOR. (convert_call_expr): Call walk_body on OMP_FOR's OMP_FOR_PRE_INIT_BODY. 2008-01-25 Richard Guenther PR tree-optimization/34966 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but default defs and PHI_NODEs we have to insert after the defining statement. 2008-01-24 Nick Clifton * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD): Provide a default definition. (LIBGCC2_UNITS_PER_WORD): Likewise. * config/stormy16/stormy16.c: Include df.h for the prototype for df_regs_ever_live_p. (xstormy16_expand_builtin_va_start): Convert the stack offset into a component_ref and then use POINTER_PLUS_EXPR to add it to the incoming_virtual_args_rtx. (xstormy16_gimplify_va_arg_expr): Rename to xstormy16_gimplify_va_arg_expr. Use POINTER_PLUS_EXPR when performing pointer arithmetic. (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed xstormy16_gimplify_va_arg_expr. Fix up some formatting issues. * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand): Move to predicates.md. (xs_hi_general_operand): Likewise. (xs_hi_nonmemory_operand): Likewise. * config/stormy16/predicates.md: (xstormy16_carry_plus_operand): New predicate. (xs_hi_general_operand): New predicate. (xs_hi_nonmemory_operand): New predicate. * config/stormy16/stormy16-protos.h: (xstormy16_carry_plus_operand): Delete prototype. (xs_hi_general_operand): Likewise. (xs_hi_nonmemory_operand): Likewise. * config/storm16/stormy16.md (addhi3): Remove earlyclobber modifiers as they are no longer needed and they can trigger reload spill failures. * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup with a match_operand in order to help reload. * config/storm16/stormy16.md (movhi_internal): Replace 'r' constraint with 'e' for the 8th alternative as this version of the mov.w instruction only accepts the lower 8 registers. 2008-01-25 Uros Bizjak PR target/34856 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]: Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements. 2008-01-25 Jakub Jelinek PR middle-end/33333 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY. 2008-01-25 Golovanevsky Olga * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs): New functions. (remove_structure): Update allocations list before removing structure. 2008-01-25 Golovanevsky Olga * ipa-struct-reorg.c (is_safe_cond_expr, create_new_stmts_for_cond_expr): Use integer_zerop function, that recognize not only zero-pointer, but zero-integer too. 2008-01-25 Ben Elliston PR other/22232 * fixproto: Escape "." in sed expression that strips leading "./". 2008-01-24 H.J. Lu PR driver/34904 * gcc.c (SWITCH_OK): Removed. (SWITCH_LIVE): Changed to bit. (SWITCH_FALSE): Likewise. (SWITCH_IGNORE): Likewise. (switchstr): Change live_cond to unsigned int. (process_command): Replace SWITCH_OK with 0. (do_self_spec): Likewise. (set_collect_gcc_options): Check the SWITCH_IGNORE bit. (give_switch): Likewise. (used_arg): Likewise. (do_spec_1): Set the SWITCH_IGNORE bit. (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE bits. Set the SWITCH_LIVE bit. 2008-01-24 Andreas Krebbel * config/s390/s390.h (MOVE_RATIO): Define new target macro. 2008-01-24 Richard Sandiford PR tree-optimization/34472 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA parameter to a "bool *" and set *DATA to false if there is an unsafe access. Do not delete the structure here. (check_cond_exprs): Delete it here instead. (check_cond_exprs, exclude_cold_structs): Do not increase I when removing a structure. 2008-01-24 Uros Bizjak PR target/34856 * config/i386/i386.c (ix86_expand_vector_init): Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements. 2008-01-24 Jakub Jakub Jelinek PR middle-end/34934 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of a fixed vector for stack. 2008-01-24 Ben Elliston PR c++/25701 * doc/gcc.texi (Software development): Add a direntry for g++. 2008-01-23 Hans-Peter Nilsson * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop stale and straggling -fforce-addr comments above. * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't define. * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define. * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define. 2008-01-23 Michael Matz PR debug/34895 * dwarf2out.c (force_type_die): Use modified_type_die instead of gen_type_die. 2008-01-23 Andreas Krebbel * ipa-struct-reorg.c (create_new_malloc): Use pointer type as malloc result type. 2008-01-23 Anatoly Sokolov * config/avr/avr.c (avr_current_arch): New variable. (avr_arch_types): Add 'avr31' and 'avr51' entries. (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'. (avr_mcu_types): Add 'avr31' and 'avr51' architectures. (avr_override_options): Init 'avr_current_arch'. (base_arch_s): Move from here... * config/avr/avr.h (base_arch_s): ... here. Add new members 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 'mega' to 'have_jmp_call'. (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__" macros. (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' architectures. * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES): (Ditto.). 2008-01-23 Richard Guenther PR middle-end/31529 * cgraphunit.c (cgraph_reset_node): Always mark the node not reachable if it is not queued already. 2008-01-23 Bernd Schmidt * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros. * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere. (cputype_selected): New static variable. (bfin_handle_option): Set it if -mcpu is used. (override_option): Select default set of workarounds if no cpu type selected on the command line. (workaround_rts_anomaly): Only run if ENABLE_WA_RETS. From Michael Frysinger * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526. * config/bfin/elf.h (LIB_SPEC): Use proper linker script for bf547, bf523, bf524, and bf526. * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and bf526. * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF523__ for bf523, __ADSPBF524__ for bf524, __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as __ADSPBF547__ and __ADSPBF54x__ for bf547. * doc/invoke.texi (Blackfin Options): Document that -mcpu now accept bf547, bf523, bf524, and bf526. 2008-01-22 Eric Botcazou PR rtl-optimization/34628 * combine.c (try_combine): Stop and undo after the first combination if an autoincrement side-effect on the first insn has effectively been lost. 2008-01-22 David Edelsohn PR target/34529 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): Offset addresses are not valid for Altivec or paired float modes. 2008-01-22 Jakub Jelinek PR c++/34607 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if DECL_INITIAL (decl) is error_mark_node. PR c++/34914 * c-common.c (handle_vector_size_attribute): Only allow integral, scalar float and fixed point types. Handle OFFSET_TYPE the same way as pointer, array etc. types. * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE. PR c++/34917 * tree.c (build_type_attribute_qual_variant): Call build_qualified_type if attributes are equal, but quals are not. 2008-01-22 Manuel Lopez-Ibanez PR 32102 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1. * flags.h (warn_strict_aliasing): Remove. (warn_strict_overflow): Remove. * opts.c (warn_strict_aliasing): Remove. (warn_strict_overflow): Remove. * c-opts.c (c_common_handle_option): -Wall only sets -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized. (c_common_post_options): Give default values to -Wstrict-aliasing and -Wstrict-overflow if they are uninitialized. * common.opt (Wstrict-aliasing): Specify Var and Init. (Wstrict-overflow): Likewise. 2008-01-22 Kenneth Zadeck PR rtl-optimization/26854 PR rtl-optimization/34400 PR rtl-optimization/34884 * ddg.c (create_ddg_dep_from_intra_loop_link): Use DF_RD->gen. * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted (df_rd_bb_info.expanded_lr_out): Deleted * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag. * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n, df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free): Removed code to allocate, initialize or free expanded_lr_out. (df_rd_bb_local_compute_process_def): Restructured to make more understandable. (df_rd_confluence_n): Removed code to no apply invalidate_by_call sets if the sets are being trimmed. 2008-01-22 H.J. Lu PR bootstrap/32287 * configure.ac (ld_vers): Support GNU linker version xx.xx.* (as_vers): Likewise. * configure: Regenerated. 2008-01-22 Manuel Lopez-Ibanez PR middle-end/33092 * tree-pass.h (pass_build_alias): New pass. * tree-ssa-alias.c (gate_build_alias): New. (pass_build_alias): New. * passes.c (init_optimization_passes): Add pass_build_alias after pass_create_structure_vars. 2008-01-22 Wolfgang Gellerich * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER): Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER. (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER. (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER. (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER. (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant. (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant. (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant. (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant. * config/s390/s390.md (FP_ALL): New mode iterator. (_d): New mode attribute. ("*signbit2>"): Changed mode of first operand. ("isinf2"): Changed mode of first operand. ("*TDC_insn"): Adaptation for DFP modes. 2008-01-22 Ben Elliston * tree.c (check_qualified_type): Improve function description. 2008-01-21 Jason Merrill PR c++/34196 * tree.h (TRY_CATCH_IS_CLEANUP): New macro. * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR if it is set. 2008-01-21 DJ Delorie * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not return zero. 2008-01-21 Richard Guenther PR middle-end/34856 * tree-cfg.c (verify_expr): Allow all invariant expressions instead of just constant class ones as reference argument. * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR like any other constant. * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. 2008-01-21 H.J. Lu * regmove.c (fixup_match_1): Update call crossed frequencies. 2008-01-21 Richard Guenther PR c/34885 * tree-inline.c (setup_one_parameter): Deal with mismatched types using a VIEW_CONVERT_EXPR. 2008-01-21 Alon Dayan Olga Golovanevsky PR tree-optimization/34701 * 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 * doc/install.texi: Add doc for --enable-checking=df. 2008-01-20 Kaz Kojima PR rtl-optimization/34808 * emit-rtl.c (try_split): Handle REG_RETVAL notes. 2008-01-20 Richard Sandiford * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per input. 2008-01-19 Kenneth Zadeck PR rtl-optimization/26854 PR rtl-optimization/34400 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use DF_RD->gen. * df.h (df_changeable_flags.DF_RD_NO_TRIM): New. (df_rd_bb_info.expanded_lr_out): New. * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag. * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n, df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free): Added code to allocate, initialize or free expanded_lr_out. (df_rd_bb_local_compute_process_def): Restructured to make more understandable. (df_rd_confluence_n): Add code to do nothing with fake edges and code to no apply invalidate_by_call sets if the sets are being trimmed. (df_lr_local_finalize): Renamed to df_lr_finalize. (df_live_local_finalize): Renamed to df_live_finalize. 2008-01-20 Richard Sandiford PR target/34831 * config/mips/mips.md (div3): Use when deciding whether to use reciprocal instructions. 2008-01-19 Uros Bizjak * dwarf2out.c (dwarf2out_switch_text_section): Do not call dwarf2out_note_section_used if cold_text_section is NULL. 2008-01-19 Jakub Jelinek PR gcov-profile/34610 * tree-cfg.c (make_edges): Mark both outgoing edges from OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL. * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits from OMP_FOR and OMP_CONTINUE outgoing edges. * tree-profile.c (tree_profiling): Return early if cfun->after_tree_profile != 0. Set cfun->after_tree_profile at the end. * omp-low.c (expand_omp_parallel): Copy after_tree_profile from cfun to child_cfun. * function.h (struct function): Add after_tree_profile bit. 2008-01-19 Anatoly Sokolov * config/avr/avr.S (_exit): Disable interrupt. 2008-01-18 Kenneth Zadeck Steven Bosscher PR rtl-optimization/26854 PR rtl-optimization/34400 * df-problems.c (df_live_scratch): New scratch bitmap. (df_live_alloc): Allocate df_live_scratch when doing df_live. (df_live_reset): Clear the proper bitmaps. (df_live_bb_local_compute): Only process the artificial defs once since the order is not important. (df_live_init): Init the df_live sets only with the variables found live by df_lr. (df_live_transfer_function): Use the df_lr sets to prune the df_live sets as they are being computed. (df_live_free): Free df_live_scratch. 2008-01-18 Ian Lance Taylor * common.opt: Add fmerge-debug-strings. * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test flag_merge_debug_strings rather than flag_merge_constants. * doc/invoke.texi (Option Summary): Mention -fmerge-debug-strings. (Debugging Options): Document -fmerge-debug-strings. 2008-01-18 Ian Lance Taylor PR c++/33407 * tree.h (DECL_IS_OPERATOR_NEW): Define. (struct tree_function_decl): Add new field operator_new_flag. * tree-inline.c (expand_call_inline): When inlining a call to operator new, force the return value to go into a variable, and set DECL_NO_TBAA_P on that variable. * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag. 2008-01-18 Uros Bizjak PR debug/34484 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with DWARF2_DEBUGGING_INFO. (dwarf2out_note_section_used): Ditto. Add prototype. (have_multiple_function_sections, text_section_used, cold_text_section_used, *cold_text_sections): Move declarations before their uses. 2008-01-17 Bob Wilson * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc field and add signal_ra. * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove assignments to frame state pc. Move end of stack check after MD_FALLBACK_FRAME_STATE_FOR. (uw_update_context_1): Use frame state signal_regs if set, instead of checking signal_frame flag. (uw_update_context): Use frame state signal_ra if set. * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define. * config/xtensa/linux-unwind.h: New file. 2008-01-18 Bernhard Fischer * modulo-sched.c (get_sched_window): Fix comment typo. 2008-01-17 Andrew MacLeod PR tree-optimization/34648 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying. 2008-01-17 Anatoly Sokolov * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around. * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add. 2008-01-17 Seongbae Park PR rtl-optimization/34400 * df-core.c (df_worklist_dataflow_overeager, df_worklist_dataflow_doublequeue): New functions. (df_worklist_dataflow): Two different worklist solvers. * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR): New param. 2008-01-16 Sebastian Pop PR testsuite/34821 * doc/invoke.texi: Document the dependence on pthread for fopenmp and ftree-parallelize-loops. 2008-01-17 Mircea Namolaru PR rtl-optimization/34826 * loop-doloop (doloop_modify): Update the REG_BR_PROB note. 2008-01-17 Andreas Krebbel * global.c (find_reg): Mark the eh regs as used if necessary. * ra-conflict.c (global_conflicts): Set no_eh_reg flag. * ra.h (struct allocno): no_eh_reg field added. Changed no_stack_reg type to bitfield. 2008-01-17 Eric Botcazou * tree.c (substitute_in_expr): Add missing 'break'. 2008-01-17 Richard Guenther PR tree-optimization/34825 * tree-ssa-math-opts.c (is_division_by): Do not recognize x / x as division to handle. 2008-01-16 John David Anglin * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or "-pthread" is specified. * pa-hpux11.h (LIB_SPEC): Likewise. 2008-01-16 Janis Johnson Peter Bergner PR rtl-optimization/33796 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc. 2008-01-16 John David Anglin PR libgfortran/34699 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on static links. * pa-hpux10.h (LINK_SPEC): Likewise. * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1. 2008-01-16 Richard Guenther PR middle-end/32628 * fold-const.c (fold_convert_const_int_from_int): Do not set overflow if that occured only because of a sign extension change when converting from/to a sizetype with the same precision and signedness. 2008-01-16 Uros Bizjak PR debug/34249 * dwarf2out.c (output_call_frame_info): Move output of FDE initial location address to the correct place. Update copyright year. 2008-01-16 Sebastian Pop * lambda-code.c (lambda_transform_legal_p): Handle the case of no dependences in the dependence_relations vector. 2008-01-16 Jan Hubicka PR rtl-optimization/31396 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED. * cfg.c (dump_reg_info): Print it. * regs.h (struct reg_info_t): add freq_calls_crossed. (REG_FREQ_CALLS_CROSSED): New macro. * global.c (global_alloc): Compute freq_calls_crossed for allocno. (find_reg): Update call of CALLER_SAVE_PROFITABLE. * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2, regmove_optimize): Update call crossed frequencies. * local-alloc.c (struct qty): Add freq_calls_crossed. (alloc_qty): Copute freq_calls_crossed. (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED. (find_free_reg): Update call of CALLER_SAVE_PROFITABLE. * ra.h (struct allocno): Add freq_calls_crossed. 2008-01-16 Sebastian Pop * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for libgomp when compiling with ftree-parallelize-loops. (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops. 2008-01-16 Richard Guenther PR tree-optimization/34769 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458. * tree.c (int_cst_value): Instead make this function more permissive in what it accepts as valid input. Document this function always sign-extends the value. 2008-01-16 Jakub Jelinek Richard Guenther PR c/34668 * gimplify.c (fold_indirect_ref_rhs): Rename to ... (gimple_fold_indirect_ref_rhs): ... this. (gimple_fold_indirect_ref): New function with foldings that preserve lvalueness. (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs. * tree-flow.h (gimple_fold_indirect_ref): Declare. * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref to fold an INDIRECT_REF, fall back to the old use of fold_indirect_ref_1. 2008-01-16 Sebastian Pop * tree-data-ref.c (subscript_dependence_tester_1): Call free_conflict_function. (compute_self_dependence): Same. 2008-01-16 Uros Bizjak PR debug/34249 * debug.h (dwarf2out_switch_text_section): Move declaration from ... * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make function global. * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]: Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section for DWARF2_UNWIND_INFO targets. 2008-01-16 Richard Guenther PR c/34768 * c-typeck.c (common_pointer_type): Do not merge inconsistent type qualifiers for function types. 2008-01-15 Jerry DeLisle * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for loop_iterator li from previous commit. 2008-01-15 Sebastian Pop * tree-parloops.c (gen_parallel_loop): Free loop bound estimations. 2008-01-12 Sebastian Pop * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New. (parallelize_loops): Don't parallelize irreducible components. 2008-01-14 Manuel Lopez-Ibanez PR c++/24924 * c-opts (c_common_post_options): Do not enable CPP flag_pedantic_errors by default. 2008-01-14 Eric Botcazou PR rtl-optimization/31944 * cse.c (remove_pseudo_from_table): New function. (merge_equiv_classes): Use above function to remove pseudo-registers. (invalidate): Likewise. 2008-01-13 Richard Guenther PR middle-end/34601 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE instead of TYPE_MODE to deal with calls from expand_one_error_var. 2008-01-13 Uros Bizjak * gcse.c (cprop_jump): Call validate_unshare_change instead of validate_change to unshare the source of the PC set. 2008-01-12 Jan Hubicka PR middle-end/32135 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct references above array bounds. This might trigger bounds checks for pointers to arrays. 2008-01-12 Sebastian Pop * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and new_replaceable_dependencies. 2008-01-12 Doug Kwan * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers instead of OPT_Wreturn_type in warning due to ignored return type qualifiers. * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to options included in -Wextra. * c.opt: New option -Wignored_qualifiers. * doc/invoke.texi (Warning Options, -Wextra): Add new option -Wignore_qualifiers. (-Wignored-qualifiers): Document. (-Wreturn-type): Remove description of functionality now handled by -Wignored-qualifiers. 2008-01-12 Eric Botcazou PR ada/33788 * fold-const.c (fold_unary) : Fold an existing NOP_EXPR if it is between integral types with the same precision. 2008-01-12 Jan Hubicka PR other/28023 * invoke.texi (max-inline-recursive-depth): Fix default value. 2008-01-12 Zdenek Dvorak * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the correct type. 2008-01-11 Bob Wilson * config/xtensa/xtensa.c (override_options): Set flag_shlib. 2008-01-11 James E. Wilson PR target/26015 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define. 2008-01-11 Anatoly Sokolov * config/avr/avr.c (expand_prologue, expand_epilogue): Don't save/restore frame pointer register and don't use 'call-prologues' optimization in function with "OS_task" attribute. 2008-01-11 Eric Botcazou PR middle-end/31309 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size when copying to memory. 2008-01-11 Steven Bosscher PR rtl-optimization/30905 * cfgcleanup.c: Include dce.h (crossjumps_occured): New global variable. (try_crossjump_bb): Exit loop after finding a fallthru edge. If something changed, set crossjumps_occured to true. (try_optimize_cfg): Clear crossjumps_occured at the beginning. Don't add/remove fake edges to exit here... (cleanup_cfg): ...but do it here, when crossjumping. Run a fast DCE when successful crossjumps occured in the latest iteration of try_optimize_cfg. 2008-01-11 Richard Guenther * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode. (struct vn_unary_op_s): Likewise. (vn_reference_insert): Free old reference on hash collision. 2008-01-10 Raksit Ashok PR rtl-optimization/27971 * combine.c (find_split_point): Split PLUS expressions which are inside a MEM rtx, and whose first operand is complex. 2008-01-10 DJ Delorie * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from... (m32c_hard_regno_nregs): ...this, which is now a wrapper. (m32c_hard_regno_ok): Call the underlying function. 2008-01-10 Richard Guenther PR middle-end/34683 * tree-cfg.c (tree_merge_blocks): Do not go through the full-blown folding and stmt updating path if we just deal with virtual operands. * tree-ssa-copy.c (may_propagate_copy): Do not short-cut test for abnormal SSA_NAMEs. 2008-01-10 Andreas Krebbel PR middle-end/34641 * reload.c (push_reload): Add assertions. All constants from reg_equiv_constant should have been used for replacing the respective pseudo earlier. (find_reloads_address): Invoke find_reloads_address_part for constant taken from the reg_equiv_constant array. 2008-01-10 Steven Bosscher * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed field (valnum) the first in the struct. Replace bools with unit bit fields. 2008-01-10 Richard Guenther PR tree-optimization/34651 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct types and ordering for masking and converting. 2008-01-09 Sebastian Pop PR tree-optimization/34017 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code also for PHI_NODE expressions. 2008-01-09 Jan Hubicka PR tree-optimization/34708 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR based on number of case labels. (init_inline_once): Remove switch_cost. * tree-inline.h (eni_weights_d): Remove switch_cost. 2008-01-09 Richard Guenther Andrew Pinski PR middle-end/30132 * gimplify.c (gimplify_cond_expr): Do not create an addressable temporary if an rvalue is ok or an lvalue is not required. 2008-01-09 Richard Guenther PR middle-end/34458 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst, adjust return type. 2008-01-09 Richard Guenther PR middle-end/34679 * tree.c (host_integerp): Check for sizetype only if the type is an integer type. 2008-01-09 Steven Bosscher PR debug/26364 * opts.c (decode_options): Disable inlining of functions called once if not in unit-at-a-time mode. 2008-01-09 Alexandre Oliva * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency. 2008-01-08 Richard Guenther PR middle-end/31863 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail out early if the result will be unused. 2008-01-08 Uros Bizjak PR target/34709 Revert: 2008-01-05 Uros Bizjak * config/i386/i386.c (ix86_builtin_reciprocal): Remove check for TARGET_RECIP. 2008-01-08 Jan Sjodin * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs for vectorization tuned. 2008-01-08 Richard Guenther PR tree-optimization/34683 * tree-ssa-operands.c (operand_build_cmp): Export. * tree-ssa-operands.h (operand_build_cmp): Declare. * tree-vn.c (vuses_compare): Remove. (sort_vuses): Use operand_build_cmp. (sort_vuses_heap): Likewise. * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc to re-use old VEC if available. Do not sort already sorted VUSEs. (vdefs_to_vec): Do not sort already sorted VDEFs. 2008-01-08 Jakub Jelinek PR middle-end/34694 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION. 2008-01-08 Uros Bizjak PR target/34702 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document limitations of reciprocal sequences on x86 targets. 2008-01-08 Richard Guenther PR tree-optimization/34683 * tree-flow-inline.h (var_ann): Remove overzealous asserts. 2008-01-07 Jakub Jelinek PR target/34622 * config/darwin.c (darwin_mergeable_string_section): Don't use .cstring if int_size_in_bytes != TREE_STRING_LENGTH. 2008-01-07 Uros Bizjak PR target/34682 * config/i386/i386.md (neg2): Rename from negsf2, negdf2 and negxf2. Macroize expander using X87MODEF mode iterator. Change predicates of op0 and op1 to register_operand. (abs2): Rename from abssf2, absdf2 and negxf2. Macroize expander using X87MODEF mode iterator. Change predicates of op0 and op1 to register_operand. ("*absneg2_mixed", "*absneg2_sse"): Rename from corresponding patterns and macroize using MODEF macro. Change predicates of op0 and op1 to register_operand and remove "m" constraint. Disparage "r" alternative with "!". ("*absneg2_i387"): Rename from corresponding patterns and macroize using X87MODEF macro. Change predicates of op0 and op1 to register_operand and remove "m" constraint. Disparage "r" alternative with "!". (absneg splitter with memory operands): Remove. ("*neg2_1", "*abs2_1"): Rename from corresponding patterns and macroize using X87MODEF mode iterator. * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2): Change predicate of op1 to register_operand. * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support for memory operands. 2008-01-07 Nathan Froyd * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548. 2008-01-07 Richard Guenther * basic-block.h (struct edge_def): Pair dest_idx with goto_locus fields. 2008-01-07 Richard Guenther PR tree-optimization/34683 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of VOPs of the needed size to save memory. Use VEC_quick_push to save compile-time. (vdefs_to_vec): Likewise. 2008-01-07 Sa Liu * config/spu/spu.md (divdf3): Genetate inline code for double division. The implementation doesn't handle INF or NAN, therefore it only applies when -ffinite-math-only is given. 2008-01-06 Paolo Carlini PR libstdc++/34680 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate. * doc/cpp.texi ([Common Predefined Macros]): Document. 2008-01-06 Uros Bizjak * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in order to use commutative addition instead of subtraction. 2008-01-06 Andrew Pinski Mircea Namolaru Vladimir Yanovsky Revital Eres PR tree-optimization/34263 * tree-outof-ssa.c (process_single_block_loop_latch, contains_tree_r): New functions. (analyze_edges_for_bb): Call process_single_block_loop_latch function to empty single-basic-block latch block if possible. 2008-01-05 Uros Bizjak * config/i386/i386.c (ix86_builtin_reciprocal): Remove check for TARGET_RECIP. (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion. 2008-01-05 Richard Sandiford * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR. 2008-01-05 Richard Sandiford * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check. 2008-01-05 Jakub Jelinek PR tree-optimization/34618 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P flag from T. 2008-01-05 Uros Bizjak PR target/34673 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check. Update copyright year. * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH. Update copyright year. * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand using NR fixup. 2008-01-05 Zhouyi Zhou * tree-vrp.c (find_conditional_asserts): Remove redundant check that edge does not point to current bb before changing need_assert. 2008-01-04 Richard Guenther PR middle-end/34029 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs for verifying purposes if they are is_gimple_min_invariant. 2008-01-04 Aldy Hernandez PR tree-optimization/34448 PR tree-optimization/34465 * gimplify.c (gimplify_init_constructor): Add new parameter notify_temp_creation. Use it. (gimplify_modify_expr_rhs): Take volatiles into account when optimizing constructors. Do not optimize constructors if gimplify_init_constructor will dump to memory. * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles. * gcc.c-torture/compile/pr34448.c: New. 2008-01-04 Jakub Jelinek PR gcov-profile/34609 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on return_slot if result is TREE_ADDRESSABLE. 2008-01-04 Richard Sandiford * config/mips/mips.md (sqrt_condition): Tweak comment. (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode. 2008-01-03 Tom Tromey PR c/34457 * c-common.c (c_type_hash): Handle VLAs. 2008-01-03 Jan Hubicka PR tree-optimization/31081 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to 0 when inlining and not inlining to first basic block. (remap_decl): When var is initialized to 0, don't set default_def. (expand_call_inline): Set entry_bb. * tree-inline.h (copy_body_data): Add entry_bb. 2008-01-03 Jakub Jelinek PR c++/34619 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL before returning. PR tree-optimization/29484 * tree-inline.c (inline_forbidden_p_2): New function. (inline_forbidden_p): Disallow inlining if some static var has an address of a local LABEL_DECL in its initializer. * doc/extend.texi (Labels as Values): Document &&foo behaviour vs. inlining. 2008-01-03 Sebastian Pop PR tree-optimization/34635 * tree-data-ref.c (add_other_self_distances): Make sure that the evolution step is constant. 2008-01-03 Jakub Jelinek PR middle-end/34608 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn. 2008-01-02 Richard Sandiford * tree-sra.c (scalarize_init): Insert the generate_element_init statements after the generate_element_zero statements. 2008-01-02 Richard Guenther PR middle-end/34093 PR middle-end/31976 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer for very large number of operands instead of ICEing. 2008-01-02 Arthur Norman PR target/34013 * gcc/config/i386/i386.c (ix86_expand_prologue): Save red-zone while stack probing. 2008-01-01 Douglas Gregor * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when in C++0x mode. 2008-01-01 Volker Reichelt PR libmudflap/26442 * tree-mudflap.c (mx_register_decls): Guard warning by !DECL_ARTIFICIAL check. 2008-01-01 Jakub Jelinek * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si, sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi, sse5_perm): Fix constraints.