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. 2007-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. 2007-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. 2007-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.