2005-12-16 Steven Bosscher * reorg.c (mostly_true_jump): Clean up code depending on LABEL_OUTSIDE_LOOP_P and loop notes. Remove code doing poor man's branch prediction, instead rely on REG_BR_PROB notes to be available. 2005-12-16 Jakub Jelinek PR rtl-optimization/24899 * loop.c (strength_reduce): Don't reduce giv that is not always computable and where add_val or mult_val can trap. * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only. 2005-12-16 Nathan Sidwell * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct names of ms1-16-002 files. 2005-12-16 Alan Modra PR driver/20425 * gcc.c (for_each_path): New function. (add_to_obstack, file_at_path): New functions. (struct file_at_path_info, struct add_to_obstack_info): New. (build_search_list): Rewrite using for_each_path. Constify struct path_prefix pointer. Add do_multi param. Adjust all callers. (find_a_file): Similarly, but just change existing param to bool. (putenv_from_prefixes): Add do_multi param, make "paths" const. (do_spec_path): Delete. (struct spec_path_info): New. (spec_path): New function. (do_spec_1): Use for_each_path for %D and %I. (find_file): Adjust for find_a_file changes. (main): Search multilibs for specs. Print multilib lib path for -print-search-dirs. Likewise add multilibs to LIBRARY_PATH_ENV. (read_specs): Search multilibs for %include and %include_noerr. (is_directory): Remove second string param. Change last param to a bool. Don't use concat. Remove SMALL_ARG_MAX test, always check path is a dir. Update all callers. * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention. * system.h (SMALL_ARG_MAX): Poison. * config.gcc: Don't define SMALL_ARG_MAX. * config.host: Likewise. * config.build: Likewise. 2005-12-16 Paolo Bonzini * combine.c (combine_simplify_rtx , simplify_logical): Move simplifications that do not require additional infrastructure... * simplify-rtx.c (simplify_unary_operation_1, simplify_binary_operation_1): ... here. 2005-12-16 Andreas Krebbel PR 24823 * flow.c (mark_used_dest_regs): New function. (mark_used_regs): Call mark_used_dest_regs. 2005-12-16 Jeff Law * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which represent a use and definition of the same SSA_NAME. 2005-12-16 Jon Grimm Janis Johnson Ben Elliston * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New. (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P. * target.h (struct gcc_target): Add decimal_float_supported_p. * targhooks.c (default_scalar_mode_supported_p): Handle MODE_DECIMAL_FLOAT. * builtins.def: Add new builtins for 32, 64 and 128 bit variants of inf, nan, finite, isinf and isnan. * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128, BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR, BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128, BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128, BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING, BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32, BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New. * c-decl.c (declspecs_add_type): Verify combos on type qualifiers. Pedwarn if decimal floating point types are used. Error if decimal floating point is not supported by the target. (finish_declspecs): Return type from DFP typespec_word. * c-typeck.c (c_common_type): Choose the decimal floating point type with the greater precision when determining a common type. (convert_arguments): Warn if there is a mismatch between argument and prototype for decimal float types. Warn of conversions with binary float types and of precision narrowing due to prototype. * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128. (c_token_starts_typename): Handle RID_DFLOAT32/64/128. (c_token_starts_declspecs): Likewise. (c_parser_attributes): Likewise. * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32, RID_DFLOAT64, RID_DFLOAT128. (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros. * c-common.c (c_common_type_for_mode): Handle decimal float modes. (shorten_compare): Convert DFP/BFP operands to a common type. (c_common_modes_and_builtins): Register built-in decimal float types if the target supports them. (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT. * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of inf, nan, finite, isinf and isnan builtins. * c-cppbuiltin.c (builtin_define_decimal_float_constants): New. (builtin_define_float_constants): Assert non-decimal radix. (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define. Call builtin_define_decimal_float_constants for each type. * c-lex.c (interpret_float): Decode decimal float types from CPP_N flags. Use real_from_string3, which can handle binary or decimal floats. * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32, cts_dfloat64, cts_dfloat128. * tree.c (build_common_tree_nodes_2): Add decimal float types. * tree.h (enum tree_index): Add new enumeration values TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE, TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE. (dfloat32_type_node): New macro. (dfloat64_type_node, dfloat128_type_node): Likewise. (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise. (dfloat128_ptr_type_node): Likewise. * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128 bit decimal floating point types with "df", "dd" and "dl". * c-format.h (enum format_lengths): Add new enumeration values FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD. * c-format.c (printf_length_specs, scanf_length_specs): Add entries for H, D, DD. (print_char_table, scan_char_table): Use new entries. (asm_fprintf_char_table, gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer length arrays. * defaults.h (DECIMAL32_TYPE_SIZE): Define. (DECIMAL64_TYPE_SIZE): Likewise. (DECIMAL128_TYPE_SIZE): Likewise. (TARGET_DEC_EVAL_METHOD): Likewise. * doc/extend.texi (Decimal Float): New node. (Constructing Calls): Document decimal float built-ins. * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook. * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h. * ginclude/decfloat.h: New file. 2005-12-16 Alan Modra * reload.c (find_reloads): Fix comment typo. * recog.h (recog_memoized): Correct comment. 2005-12-16 Kazu Hirata * basic-block.h, config/i386/winnt.c, config/pa/pa.c, config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def, reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos. * doc/invoke.texi, doc/tm.texi: Fix typos. 2005-12-16 Ben Elliston * real.c (decimal_quad_format): Correct values for emin, emax. 2005-12-15 DJ Delorie * config/m32c/predicates.md (m32c_psi_scale): New. * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New. * config/m32c/muldiv.md (mulpsi3): Support negative constants. 2005-12-16 Jan Hubicka PR rtl-optimization/25224 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy tables. 2005-12-15 Zdenek Dvorak Steven Bosscher * loop-invariant.c (df): New global variable. (find_defs, check_dependencies, find_invariant_insn, record_uses, find_invariants_bb, find_invariants_body, find_invariants, find_invariants_to_move, move_invariants, free_inv_motion_data, move_single_loop_invariants, move_loop_invariants): Do not pass df in arguments. 2005-12-15 Jakub Jelinek * varasm.c (default_unique_section_1): Use special section names for SECCAT_DATA_REL{,_RO}{,_LOCAL}. 2005-12-16 Ben Elliston * doc/invoke.texi (Warning Options): Document -Walways-true being enabled by -Wall. 2005-12-15 Joseph S. Myers PR other/25028 * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define. * libgcc2.c (__floatdixf, __floatundixf, __floatditf, __floatunditf): Use #error if type sizes don't match requirements of implementation. (__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode as wider floating-point type. Use #error if type sizes don't match requirements of implementation. Avoid overflow in computing Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion, shift one more bit. Cast 1 to DWtype or UDWtype for shifting. (__floatundisf, __floatundidf): Likewise. * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define. * config/ia64/ia64.c (ia64_init_libfuncs): Use _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for TFmode-TImode conversions. * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document. 2005-12-14 Craig Rodrigues * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Use builtin_define_with_int_value() instead of adding a new check for every new major FreeBSD version. 2005-12-14 Andrew Pinski * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h. 2005-12-15 Richard Sandiford * config/arm/predicates.md (call_memory_operand): New. * config/arm/arm.md (*call_mem, *call_value_mem): Use it. 2005-12-15 Andrew Haley * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard against prev_cache_entry == NULL when moving a cache entry to the head of the list. 2005-12-15 Nathan Sidwell * config/mt/mt.c (mt_override_options): Require lower case architectures. Revert accidental default to ms2. * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC, ENDFILE_SPEC): Require lower case architectures. Revert default to ms2. * doc/invoke.texi (MT Options): Rename and update. * doc/md.texi (MorphoTech family): Rename and update. 2005-12-15 Olivier Hainque * stor-layout.c (layout_type): Don't complain about a too small an array element type size compared to its alignment when the size overflows. 2005-12-15 Jan Hubicka PR target/24969 * i386.c (classify_argument): Properly adjust offset of bitfield for substructures. 2005-12-15 Richard Sandiford * final.c (final_scan_insn): Flip in_cold_section_p when changing between the hot and cold sections. Use current_function_section to get the new section. * dwarf2out.c (output_line_info): Use in_cold_section_p to determine whether we are assembling hot or cold code. (secname_for_decl, dwarf2out_var_location): Likewise. (dwarf2out_init, dwarf2out_finish): Use switch_to_section. * varasm.c (last_text_section): Delete. (in_cold_section_p): New variable. (hot_function_section): New function. (current_function_section): Pass in_cold_section_p as the reloc argument to select_section. Use it to decide between unlikely_function_section and hot_function_section. (assemble_start_function): Use switch_to_section. Set in_cold_section_p instead of last_text_section. (assemble_end_function): Use switch_to_section. (switch_to_section): Don't set last_text_section. * config/darwin/darwin.c (machopic_select_section): Trust the reloc argument to make the right choice between hot and cold sections. 2005-12-15 Nathan Sidwell Second part of MS1->MT renaming * config/mt/mt.md (doloop_end): Call mt_add_loop. (movqi, movhi): Call mt_set_memflags. (*movdf_internal): Call mt_split_words. (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call mt_set_memflags. (cmpsi): Store to mt_compare_op[01]. (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge, bungt, bunle, bunlt): Call mt_emit_cbranch. (prologue): Call mt_expand_prologue. (epilogu): Call mt_expend_epilogue. (eh_return): Call mt_expand_eh_return. (eh_epilogue): Call me_emit_eh_epilogue. (conditional_trap): Store to mt_compare_op[01]. * config/mt/crti.asm: Adjust comment. * config/mt/crtn.asm: Adjust comment. * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed. (mt_compare_op0, mt_compare_op1): Renamed. (current_frame_info, zero_frame_info): Adjust type. (mt_ucmpsi3_libcall): Renamed. (mt_flag_delayed_branch): Renamed. (mt_struct_value_rtx, mt_return_addr_rtx): Renamed. (mt_nops_required, mt_nop_reasons): Renamed. (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn, mt_debug_stack, mt_print_operand_simple_address, mt_print_operand_address, mt_print_operand): Renamed, adjusted. (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg, mt_function_arg_advance, mt_arg_partial_bytes, mt_pass_by_reference, mt_function_arg_boundary, mt_reg_ok_for_base_p, mt_legitimate_simple_address_p, mt_legitimate_address_p): Renamed, adjusted. (mt_cpu): Renamed. (mt_init_machine_status, mt_override_options, mt_builtin_saveregs, mt_va_start, mt_compute_frame_size, mt_emit_save_restore, mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue, mt_expand_eh_return, mt_emit_eh_prologue, mt_handl_interrupt_attribute): Renamed, adjusted. (mt_attribute_table): Renamed, adjusted. (mt_initial_elimination_offset, mt_generate_compare, mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags, mt_secondary_reload_class, mt_function_value, mt_split_words, mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length, mt_scan_loop, mt_reorg_loops): Renamed, adjusted. (mt_labels): Renamed. (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard, mt_machine_reorg): Renamed, adjusted. (mt_attribute_table: Renamed. (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX, TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK, TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust. * config/mt/mt.opt (march): Set mt_cpu_string. * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed. (TARGET_CPU_CPP_BUILTINS): Adjust. (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003, TARGET_MS2): Adjust. (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust. (MT_MIN_INT): Renamed. (RETURN_ADDR_RTX): Adjust. (struct mt_frame_info): Renamed. (current_frame_info): Adjust type. (INITIAL_ELIMINATION_OFFSET): Adjust. (MT_NUM_ARG_REGS): Renamed. (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS, FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE, LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START, GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE, FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust. (mt_compare_op0, mt_compare_op1): Renamed. * config/mt/mt-protos.h: Rename prototypes. 2005-12-15 Richard Guenther * tree-flow.h (okay_component_ref_for_subvars): Remove. (get_ref_base_and_extent): Declare. * tree-dfa.c (okay_component_ref_for_subvars): Remove. (get_ref_base_and_extent): New function. * tree-ssa-alias.c (find_used_portions): Use it. * tree-ssa-structalias.c (get_constraint_for_component_ref): Likewise. * tree-ssa-operands.c (get_expr_operands): Likewise. 2005-12-15 Paolo Bonzini * combine.c: Remove force_to_mode's fourth parameter. (force_to_mode): Do not handle REG. (canon_reg_for_combine): New. (make_field_assignment): Use it where the removed argument was non-NULL. 2005-12-15 Alan Modra PR target/25406 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle error_mark_node. Make alignment params unsigned. * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): Update prototype. (rs6000_machopic_legitimize_pic_address): Remove arg names. 2005-12-14 Ulrich Weigand PR rtl-optimization/25310 * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs of the eliminable register when substituting into a PLUS. 2005-12-14 Jakub Jelinek PR debug/25023 * config/i386/i386.c (ix86_force_to_memory): Always use SImode push for HImode in -m32. (ix86_free_from_memory): Likewise. 2005-12-14 Richard Sandiford * gcc/config/arm/arm.md: Provide a big-endian version of the (zero_extend:SI (subreg:QI ...)) splitter. 2005-12-14 J"orn Rennecke * struct-equiv.c (note_local_live): Handle hard regs with different hard_regno_nregs. 2005-12-14 Jeff Law * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer to a structure containing state rather than a pointer to bool. (case ARRAY_REF): New code to handle folding some array references. (case ADDR_EXPR): Note when we are processing expressions found within an ADDRE_EXPR. (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r for state variables rather than just a pointer to a boolean. * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove handling of constant string references. 2005-12-14 Adrian Straetling * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge. ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge. ("*tstdi_cconly2", "*tstsi_cconly2"): Merge. Move other tst* patterns to retain partial order. 2005-12-14 Adrian Straetling * config/s390/s390.md ("d0", "1"): New mode attributes. ("di3", "si3"): Merge. ("*di3_and", "*si3_and"): Merge. ("ashrdi3", "ashrsi3"): Merge. ("*ashrdi3_cc", "*ashrsi3_cc"): Merge. ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge. ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge. ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge. ("*ashrdi3", "*ashrsi3"): Merge. ("*ashrdi3_and", "*ashrsi3_and"): Merge. 2005-12-14 Adrian Straetling * config/s390/s390.md ("extenddi2", "extendsi2"): Merge. ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge. ("*extendqidi2", "*extendqisi2") Merge. ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge. ("zero_extendhidi2", "zero_extendqidi2"): Merge. ("*zero_extenddi2_extimm", "*zero_extendsi2_extimm"): Merge. Move some patterns to retain partial ordering. 2005-12-14 Adrian Straetling * config/s390/s390.md ("atype", "length"): Rewrite. ("*insv_reg_imm", "*insv_reg_extimm"): Add mode. 2005-12-14 Sebastian Pop * tree-ssa-operands.c (build_ssa_operands): Update leading comment. 2005-12-14 J"orn Rennecke * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for PARALLELs with a mode. 2005-12-14 Sebastian Pop * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of cond_expr parameter. 2005-12-14 Sebastian Pop * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning. 2005-12-14 J"orn Rennecke PR bootstrap/25397: * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing of STACK_REGS bits. * struct-euiv.c (rtx_equiv_p): Remove SUBREG case. 2005-12-14 Jakub Jelinek PR target/25254 PR target/24188 * config/i386/i386.c (x86_64_elf_select_section): If DECL is not DECL_P, call get_section rather than get_named_section. Supply section flags to it. 2005-12-14 Ben Elliston * c-common.c (c_common_truthvalue_conversion): Generalise warning for addresses converted to booleans; not just function addresses. * c-typeck.c (build_binary_op): Warn for address comparisons which can never be NULL (eg. func == NULL or &var == NULL). * common.opt (Walways-true): New option. * c-opts.c (c_common_handle_option): Set it with -Wall. * doc/invoke.texi: Document it. 2005-12-13 Paul Brook * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2, __floatunsidf, __floatunsisf, __floatunsixf): New functions. 2005-12-13 Nathan Sidwell * sim/common/sim-signal.c (sim_signal_to_target): Add missing ':'. * sim/common/sim-signal.h (sim_signal_to_target): Return an int. * config/mt/t-mt (crti.o, crtn.o): Add multilib options. (EXTRA_MULTILIB_PARTS): Define. 2005-12-13 J"orn Rennecke PR rtl-optimization/20070 / part1 * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call count_or_remove_death_notes with kill == -1. (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack registers if PROP_POST_REGSTACK is set. (mark_used_reg): Likewise. (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD / REG_UNUSED notes for stack regs. * cfgcleanup.c (condjump_equiv_p): Change parameters and processing to match rtx_equiv_p machinery. Change caller. (outgoing_edges_match): Likewise. (try_crossjump_to_edge): Use struct_equiv_block_eq instead of flow_find_cross_jump. * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define. (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise. (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise. (STRUCT_EQUIV_MAX_LOCAL): Likewise. (struct struct_equiv_checkpoint, struct equiv_info): Likewise. (insns_match_p): Update prototype. (flow_find_cross_jump): Remove prototype. (struct_equiv_block_eq, struct_equiv_init): Declare. (rtx_equiv_p, condjump_equiv_p): Likewise. * struct-equiv.c: Include reload.h. (IMPOSSIBLE_MOVE_FACTOR): Define. (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions. (struct_equiv_improve_checkpoint): Likewise. (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise. (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise. (struct_equiv_merge, find_dying_input): Likewise. (resolve_input_conflict, note_local_live): Likewise. (death_notes_match_p): Change parameters and processing to match rtx_equiv_p machinery. Change caller. (insns_match_p): Likewise. (flow_find_cross_jump): Replace with: (struct_equiv_block_eq). Back out this change: 2005-03-07 Kazu Hirata * recog.c (verify_changes): Make it static. * recog.h: Remove the corresponding prototype. 2005-12-13 J"orn Rennecke * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point values. 2005-12-13 Nathan Sidwell * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2 (MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'. * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2, TARGET_MS1_64_001 appropriately. (ms1_machine_reorg): Use TARGET_MS2. 2005-12-13 Jakub Jelinek PR debug/25023 PR target/25293 * expr.c (emit_move_resolve_push): Handle PRE_MODIFY and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING. Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity. * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw. Set mode to SI, adjust constraints. (pushhi2_rex64, pushqi2_rex64): Set mode to DI. * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for 32-bit code. 2005-12-13 Carlos O'Donell * c-cppbuiltin.c (builtin_define_float_constants): Add fp_cast parameter, pass to builtin_define_with_hex_fp_value. Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__. (builtin_define_with_hex_fp_value): Use fp_cast when building macro. (c_cpp_builtins): If flag_single_precision_constant then set fp_cast to "((double)%sL)" otherwise "%s". 2005-12-13 Paul Brook * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for apcs/atpcs. 2005-12-11 Rafael Ávila de Espíndola * tree-flow.h: Allow compilation with a C++ compiler. (struct edge_prediction): Prefix all field names with "ep_". * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction. (tree_predict_edge, combine_predictions_for_bb): Likewise. (remove_predictions_associated_with_edge): Likewise. 2005-12-12 Jeff Law * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove reassociation code. * passes.c (init_optimization_passes): Run reassociation again after loop optimizations. 2005-12-12 Daniel Berlin * tree-ssa-dom.c (thread_across_edge): Canonicalize condition if necessary. (optimize_stmt): Ditto. (canonicalize_comparison): New function. * tree-ssa-operands.c (swap_tree_operands): Make external. (get_expr_operands): Stop auto-canonicalization. * tree-ssa-reassoc.c: Rewrite. (init_optimization_passes): * tree-flow.h (swap_tree_operands): Prototype. * Makefile.in (tree-ssa-reassoc.o): Update dependencies. 2005-12-12 John David Anglin * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to indicate function epilogue has been output. (pa_asm_output_mi_thunk): Likewise. (output_deferred_plabels): Put plabels in readonly data section when not generating PIC code. (som_output_text_section_asm_op): Use .NSUBSPA to output debug information. Add assert. (som_output_comdat_data_section_asm_op): New function. (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op instead of output_section_asm_op for COMDAT sections. 2005-12-12 J"orn Rennecke * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge): Fix whitespace in vincinity of to-be-installed changes. * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace. (insns_match_p): Likewise. 2005-12-12 Nathan Sidwell * config.gcc (ms1): Replace with ... (mt): ... this. * config/ms1: Rename to ... * config/mt: ... here. Rename ms1 files to mt. * config/mt/mt.c: Adjust gt-mt.h #include. * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust. (crti.o, crtn.o): Adjust file names. 2005-12-12 Gabriel Dos Reis * varray.h: Allow compilation with a C++ compiler. (union varray_data_tag): Prefix all field names with "vdt_". (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT, VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG, VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR, VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX, VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB, VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition. (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT, VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise. (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Likewise. * varray.c (varray_grow): Likewise. (varray_clear): Likewise. 2005-12-12 Alan Modra PR target/25299 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase alignment to doubleword if the first field is a double array. * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define. 2005-12-11 Daniel Berlin * tree-ssa-structalias.c (process_constraint): Remove code to transform addressofs into scalar. (create_variable_info_for): In whole-program IPA, globals don't point to ANYTHING by default. 2005-12-11 Daniel Berlin * timevar.def (TV_IPA_PTA): New. * tree-pass.h (pass_ipa_pta): New * tree-ssa-structalias.c: Include cgraph.h (in_ipa_mode): New. (predbitmap_obstack): New. (EXECUTE_IF_IN_NONNULL_BITMAP): New. (struct constraint_stats): Add num_edges. (new_var_info): Don't call bitmap_clear. (struct constraint_edge): Update docs. (new_constraint_edge): Remove src param. (struct constraint_graph): Add zero_weight_succs, zero_weight_preds. Update docs. (constraint_expr_equal): Reformat. (constraint_edge_equal): Update for removal of src. (constraint_edge_less): Ditto. (constraint_edge_vec_find): Ditto. (erase_graph_self_edge): Update for removal of src and and zero weight bitmap. (clear_edges_for_node): Ditto. (add_graph_edge): Ditto. (get_graph_weights): Ditto. (allocate_graph_weights): Ditto. (merge_graph_nodes): Ditto. (int_add_graph_edge): Ditto. (valid_graph_edge): Ditto. (valid_weighted_graph_edge): Ditto. (build_constraint_graph): Ditto. (scc_visit): Ditto. (collapse_nodes): Ditto. (process_unification_queue): Ditto. (topo_visit): Ditto. (solve_graph): Ditto. (do_structure_copy): Ditto. (perform_var_substitution): Ditto. Init and release obstack. (handle_ptr_arith): Try to resolve directly. (find_func_aliases): Don't call update_alias_info here Handle RETURN_EXPR, and CALL_EXPR's in IPA mode. (do_sd_constraint): Add code for propagating faster. Update. (do_ds_constraint): Ditto. (count_num_arguments): New function. (create_function_info_for): Ditto. (create_variable_info_for): Handle FUNCTION_DECL. (intra_create_variable_infos): Use make_constraint_to_anything. (init_alias_vars): Init obstacks here. (need_to_solve): Handle zero weight graph changes. (compute_points_to_sets): Call update_alias_info here. (delete_points_to_sets): Free zero weight preds/succs here. (gate_ipa_pta): New. (ipa_pta_execute): New 2005-12-11 Daniel Berlin * tree-ssa-structalias.c (var_anyoffset): Removed. (anyoffset_tree): Ditto. (anyoffset_id): Ditto. (do_deref): Take vector of constraints, no return value. Update to work on vector. (get_constraint_for): Ditto. (get_constraint_for_component_ref): Ditto. (do_structure_copy): Ditto. (handle_ptr_arith): Ditto. (find_func_aliases): Ditto. (set_uids_in_ptset): Remove anyoffset handling. (init_base_vars): Ditto. 2005-12-10 Mark Mitchell PR c++/25010 * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that DECL_EXTERNAL functions have no bodies. Tidy. 2005-12-10 Andreas Schwab * except.c (switch_to_exception_section): Only define if TARGET_UNWIND_INFO is not defined. 2005-12-10 Richard Sandiford * config/darwin.h (HAS_INIT_SECTION): Remove definition. (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07. 2005-12-10 Richard Sandiford * output.h (init_section, fini_section): Delete. * varasm.c (init_section, fini_section): Delete. (init_varasm_once): Don't initialize them. * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that there are no corresponding varasm.c variables. 2005-12-10 Richard Sandiford * dwarf2out.c (default_eh_frame_section): Delete, moving handling of EH_FRAME_SECTION_NAME into... (switch_to_eh_frame_section): ...here. Try to set eh_frame_section if it is still null. * except.c (default_exception_section): Delete, moving most of the code to... (switch_to_exception_section): ...this new function. Set exception_section if it is still null, then switch to it. (output_function_exception_table): Use switch_to_exception_section. * varasm.c (exception_section, eh_frame_section): Update comments. (get_section): Hoist use of SECTION_NAMED. (init_varasm_once): Don't set exception_section and eh_frame_section. * output.h (default_exception_section): Delete. (default_eh_frame_section): Delete. 2005-12-09 Bernd Schmidt * config/bfin/bfin.c: Include "cgraph.h". (bfin_load_pic_reg): Omit loading pic reg if in a local function. Return the reg that holds the pointer to the GOT. (bfin_expand_prologue): Use return value of bfin_load_pic_reg when doing stack checking. 2005-12-09 Diego Novillo * tree.c (recompute_tree_invariant_for_addr_expr): Rename from recompute_tree_invarant_for_addr_expr. Update uses everywhere. 2005-12-09 Aldy Hernandez * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define. (MULTILIB_DIRNAMES): Define. 2005-12-09 Ulrich Weigand PR target/25311 * config/s390/s390.c (struct s390_address): New field literal_pool. (s390_decompose_address): Compute literal_pool field. Do not assume register %r13 is always (and solely) used as pool base. (s390_extra_constraint_str): Use literal_pool field. 2005-12-09 Thiemo Seufer * config/mips/mips.c (override_options): Don't allow too small integers in FP registers. 2005-12-09 Ulrich Weigand * config/s390/s390.c (s390_function_ok_for_sibcall): Use targetm.binds_local_p to check for local function calls. 2005-12-09 Alan Modra PR debug/24908 * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that call_used_regs can't be used to save reg in another reg. 2005-12-08 Volker Reichelt Christophe Jaillet * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of abort. * except.c (output_ttype): Likewise. * tree-object-size.c (collect_object_sizes_for): Likewise. (check_for_plus_in_loops_1): Likewise. (check_for_plus_in_loops): Likewise. (compute_object_sizes): Use gcc_unreachable instead of abort. 2005-12-08 Nathan Sidwell * config/ms1/ms1.md (UNSPEC_LOOP): New constant. (loop_end, loop_init, doloop_end): New insns. * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New. (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust. (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust. (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust. * config/ms1/ms1.c: #include basic-block.h (struct machine_function): Add has_loops field. (ms1_add_loop): New. (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New. (struct loop_info, struct loop_work): New. (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers. (ms1_reorg_loops): New loop optimization. (ms1_machine_reorg): Call it. * config/ms1/ms1-protos.h (ms1_add_loop): Declare. 2005-12-08 Zdenek Dvorak PR tree-optimization/25248 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use evolution_of_loop from the failed attempt. Remove handling of MULT_EXPR. 2005-12-08 Gabriel Dos Reis * tree.h (DECL_EXTERNAL): Clarify documentation. 2005-12-08 Andreas Krebbel Jakub Jelinek PR target/25268 * config/s390/s390.c (s390_decompose_shift_count): Remove BITS argument. Don't drop outer ANDs. (s390_extra_constraint_str, print_shift_count_operand): Adjust callers. * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust prototype. * config/s390/predicates.md (setmem_operand): Remove. (shift_count_operand): Rename to... (shift_count_or_setmem_operand): ... this. Adjust s390_decompose_shift_count caller. * config/s390/s390.md (di3_31_and, di3_64_and, ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and, ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and, si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and, rotl3_and, setmem_long_and): New insns. (di3_31, di3_64, ashrdi3_cc_31, ashrdi3_cconly_31, ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64, si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl3, di3, ashrdi3): Use shift_count_or_setmem_operand instead of shift_count_operand. (setmem_long): Use shift_count_or_setmem_operand instead of setmem_operand. 2005-12-08 Daniel Jacobowitz Andreas Tobler * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable tr expression. 2005-12-07 J"orn Rennecke * expr.c (force_operand): Use convert_to_mode for conversions. 2005-12-07 J"orn Rennecke * reload.h (reg_equiv_invariant): Declare. * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo register also when reg_equiv_invariant[R] is set. 2005-12-07 Richard Sandiford Andreas Tobler * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET. 2005-12-07 Daniel Berlin * tree-ssa-pre.c (bitmap_set_and): New function. (bitmap_set_and_compl): New function. (bitmap_set_empty_p): New function. (insert_extra_phis): New function. (compute_avail): Use insert_extra_phis. 2005-12-07 Adrian Straetling * config/s390/s390.c (s390_expand_atomic): New function. Adjust comment of helper functions. * config/s390/s390-protos.h (s390_expand_atomic): Declare. * config/s390/s390.md ("ATOMIC"): New code macro. ("atomic"): Corresponding new code attribute. ("sync_lock_test_and_set[hq]i", "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern. 2005-12-07 Adrian Straetling * config/s390/s390.c (s390_expand_mask_and_shift, struct alignment_context, init_alignment_context, s390_expand_cs_hqi): New. * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare. * config/s390/s390.md ("sync_compare_and_swaphi", "sync_compare_and_swapqi"): New pattern. 2005-12-07 Daniel Berlin Fix PR tree-optimization/25291 * tree-ssa-operands.c (add_call_clobber_ops): Remove redundant and crashing check. 2005-12-08 Alan Modra PR target/25212 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax tests further when !strict && reload_in_progress. (print_operand): Check that both operands of indexed address are regs. (print_operand_address): Likewise. * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify. (INT_REG_OK_FOR_BASE_P): Correct. 2005-12-07 J"orn Rennecke Preparation for PR rtl-optimization/20070 / part1 * basic-block.h (insns_match_p, flow_find_cross_jump): Declare. * cfgcleanup.c (condjump_equiv_p): New function, broken out of outgoing_edges_match. (outgoing_edges_match): Use condjump_equiv_p. (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here into.. * struct-equiv.c: New file. (death_notes_match_p) New function, broken out of insns_match_p. * Makefile.in (OBJS-common): Add struct-equiv.o. (struct-equiv.o): New target. 2005-12-07 Richard Sandiford * coretypes.h: Revert previous change. * config/darwin.h: Revert previous reversion. * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2. 2005-12-07 Richard Sandiford * coretypes.h (section): Provide dummy definition for target files. * config/darwin.h: Revert previous change. 2005-12-07 Rafael Ávila de Espíndola * doc/sourcebuild.texi (all.build, install-normal): Remove. * configure.ac: Remove all.build and install-normal from target_list * configure: Regenerate. * Makefile.in (install): Don't depend on install-normal. 2005-12-07 Rafael Ávila de Espíndola * Makefile.in: Document the use of stamps. 2005-12-07 Rafael Ávila de Espíndola * doc/gty.texi: Remove instructions for adding a dependency on s-gtype. * Makefile.in: Add code to compute some dependencies on s-gtype automatically. Remove the declaration of those dependencies. 2005-12-07 Richard Sandiford * gcc/reload.c (push_secondary_reload): Fix typo: s/insn_constraint/scratch_constraint/. 2005-12-07 Richard Sandiford * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2. 2005-12-07 Richard Sandiford * config/alpha/alpha.c (alpha_start_function): Use switch_to_section. (alpha_elf_select_rtx_section): Return the selected section rather than emitting assembly code. (alpha_write_linkage): Emit a ".link" directive directly and then set in_section to NULL. (vms_asm_out_constructor): Use switch_to_section. (vms_asm_out_destructor): Likewise. (unicosmk_output_common): Set in_section to NULL instead of calling the dummy common_section function. (unicosmk_text_section): Delete in favor of... (unicosmk_output_text_section_asm_op): ...this new function. (unicosmk_data_section): Delete in favor of... (unicosmk_output_data_section_asm_op): ...this new function. (unicosmk_init_sections): New function. (unicosmk_output_deferred_case_vectors): Use switch_to_section. (unicosmk_output_ssib): Set in_section to NULL instead of calling the dummy ssib_section function. (unicosmk_section_buf): Delete. * config/alpha/alpha-protos.h (unicosmk_text_section): Delete. (unicosmk_data_section): Delete. * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section) (SECTION_FUNCTION_TEMPLATE): Delete. * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP) (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete. (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. (TARGET_ASM_INIT_SECTIONS): Define. * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP) (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. (link_section, literals_section): Delete. (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then set in_section to NULL. * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete. (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete. (COMMON_SECTION): Delete. (TARGET_ASM_INIT_SECTIONS): Define. (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling the dummy common_section function. * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. * config/arm/arm.c (get_jump_table_size): Use pointer comparison between readonly_data_section and text_section to check whether read-only data is being put in the text section. (arm_output_function_epilogue): Use switch_to_section. (arm_elf_asm_constructor): Likewise. (thumb_call_via_reg): Replace call to in_text_section with a comparison between in_section and text_section. (arm_file_end): Use switch_to_section. (aof_text_section): Delete in favor of... (aof_output_text_section_asm_op): ...this new function. (aof_data_section): Delete in favor of... (aof_output_data_section_asm_op): ...this new function. (aof_asm_init_sections): New function. (zero_init_section): Moved from config/arm/aof.h. (aof_dump_imports, aof_file_start): Use switch_to_section. * config/arm/arm.h (thumb_call_via_label): Update comment. * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete. (common_section): Delete. * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the global switch_to_section function instead of the old port-local one. (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION) (SWITCH_TO_SECTION_FUNCTION): Delete. (drectve_section): Redefine as a macro. * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and switch_to_section. * config/avr/avr.c (progmem_section): New variable. (avr_output_progmem_section_asm_op): New function. (avr_asm_init_sections): New function. (avr_output_addr_vec_elt): Use switch_to_section. * config/avr/avr.h (progmem_section): Declare. (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. (READONLY_DATA_SECTION): Delete. (TARGET_ASM_INIT_SECTIONS): Define. (ASM_OUTPUT_CASE_LABEL): Use switch_to_section. * config/avr/avr-protos.h (progmem_section): Delete. * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section. * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete. * config/darwin-sections.def: New file. * config/darwin.c: Define all sections in darwin-sections.def. (output_objc_section_asm_op, darwin_init_sections): New functions. (machopic_output_indirection): Use switch_to_section. (machopic_select_section): Return the selected section rather than emitting assembly code. Replace the static function table with inline conditional expressions. Update the tests of last_text_section and move them into the FUNCTION_DECL block. (machopic_select_rtx_section): Return the selected section rather than emitting assembly code. (machopic_asm_out_constructor, machopic_asm_out_destructor) (darwin_file_end): Use switch_to_section. * config/darwin.h: Use darwin-sections.def to declare sections. (INIT_SECTION_ASM_OP): Remove empty definition. (HAS_INIT_SECTION): Define this instead. (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete. (TARGET_ASM_EH_FRAME_SECTION): Delete. (TARGET_ASM_INIT_SECTIONS): Define. * config/darwin-protos.h (darwin_init_sections): Declare. (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section) (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete. (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section) (constructor_section, destructor_section, mod_init_section): Delete. (mod_term_section): Delete. (darwin_exception_section, darwin_eh_frame_section): Delete. (machopic_select_section): Return a section. (machopic_select_rtx_section): Likewise. (text_coal_section, text_unlikely_section, text_unlikely_coal_section) (const_section, const_coal_section, const_data_section): Delete. (const_data_coal_section, data_coal_section, cstring_section): Delete. (literal4_section, literal8_section, constructor_section): Delete. (mod_init_section, mod_term_section, destructor_section): Delete. (objc_class_section, objc_meta_class_section, objc_category_section) (objc_class_vars_section, objc_instance_vars_section): Delete. (objc_cls_meth_section, objc_inst_meth_section): Delete. (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete. (objc_selector_refs_section, objc_selector_fixup_section): Delete. (objc_symbols_section, objc_module_info_section): Delete. (objc_image_info_section, objc_protocol_section): Delete. (objc_string_object_section, objc_constant_string_object_section) (objc_class_names_section, objc_meth_var_names_section): Delete. (objc_meth_var_types_section, objc_cls_refs_section): Delete. (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section) (machopic_symbol_stub_section, machopic_picsymbol_stub_section) (darwin_exception_section, darwin_eh_frame_section): Delete. * config/t-darwin (darwin.o): Depend on config/darwin-sections.def. * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section. (frv_asm_out_destructor): Likewise. * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete. (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and get_named_section. (ASM_OUTPUT_CASE_LABEL): Use switch_to_section. * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section) (data_section): Delete. * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) (DRECTVE_SECTION_FUNCTION): Delete. (drectve_section): Redefine as a macro that sets in_section after emitting the directive. (SWITCH_TO_SECTION_FUNCTION): Delete. * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to in_text_section with comparison between in_section and text_section. * config/i386/i386.c (x86_64_elf_select_section): Return the section rather than emitting assembly code. Use get_named_section. (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and get_named_section. (machopic_output_stub): Use switch_to_section. * config/i386/nwld.c (nwld_named_section_asm_out_constructor) (nwld_named_section_asm_out_destructor): Use get_section and switch_to_section. * config/ia64/ia64.c (ia64_select_rtx_section): Return the section rather than emitting assembly code. (ia64_rwreloc_select_section): Likewise. (ia64_rwreloc_select_rtx_section): Likewise. * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete. * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section. (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete. * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the section rather than emitting assembly code. (iq2000_select_section): Likewise. * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete. (sbss_section): Delete. * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section and get_named_section. * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete. * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete. (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete. (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete. (MCORE_EXPORT_NAME): Emit the exports directive directly, then set in_section to NULL. (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the global switch_to_section function instead of the old port-local one. * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) (SWITCH_SECTION_FUNCTION): Delete. * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete. (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete. (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete. (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set in_section to NULL. (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the global switch_to_section function instead of the old port-local one. (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. * config/mips/mips.c (mips_file_start): Update comment. (mips_output_aligned_bss): Use switch_to_section and get_named_section. (mips_output_aligned_decl_common): Use switch_to_section. (mips_select_rtx_section): Return the section rather than emitting assembly code. Use get_named_section. (mips_function_rodata_section: Likewise get_section. (build_mips16_function_stub): Use switch_to_section. * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section. (SDATA_SECTION_ASM_OP): Delete. * config/mips/vxworks.h (EXTRA_SECTIONS): Delete. (EXTRA_SECTION_FUNCTIONS): Delete. * config/mmix/mmix.c (mmix_file_start, mmix_file_end) (mmix_asm_output_aligned_local): Use switch_to_section. * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section) (som_one_only_readonly_data_section): New variables. (pa_output_function_epilogue): Set in_section to NULL instead of calling forget_section. (output_deferred_plabels): Use select_section. (pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead of calling forget_section. (pa_asm_output_aligned_bss, pa_asm_output_aligned_common) (pa_asm_output_aligned_local): Use select_section. (som_text_section_asm_op): Delete in favor of... (som_output_text_section_asm_op): ...this new function. (pa_som_asm_init_sections): New function. (pa_select_section): Return the section rather than emitting assembly code. * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. (SOM_READONLY_DATA_SECTION_FUNCTION): Delete. (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete. (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete. * config/pa/pa-protos.h (som_text_section_asm_op): Delete. (som_readonly_data_section, som_one_only_readonly_data_section) (som_one_only_data_section, forget_section): Delete. * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete. (TARGET_ASM_INIT_SECTIONS): Define. (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete. * config/rs6000/rs6000.c (read_only_data_section): New variable. (private_data_section, read_only_private_data_section): New variables. (sdata2_section, toc_section): New variables. (rs6000_file_start): Use switch_to_section. (rs6000_assemble_integer): Use comparisons against in_section instead of calling in_toc_section and in_text_section. Use unlikely_text_section_p. (rs6000_elf_output_toc_section_asm_op): New function, derived from the old rs6000/sysv4.h toc_section function. (rs6000_elf_asm_init_sections): New function. (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return the section rather than emitting assembly code. (machopic_output_stub): Use switch_to_section. (toc_section): Delete dummy function. (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use switch_to_section and get_section. (rs6000_xcoff_output_readonly_section_asm_op): New function. (rs6000_xcoff_output_readwrite_section_asm_op): New function. (rs6000_xcoff_output_toc_section_asm_op): New function, derived from the old rs6000/xcoff.h toc_section function. (rs6000_xcoff_asm_init_sections): New function. (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return the section rather than emitting assembly code. (rs6000_xcoff_file_start): Use switch_to_section. (rs6000_xcoff_file_end): Likewise. * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete. (sdata2_section, sbss_section, private_data_section): Delete. (read_only_data_section, read_only_private_data_section): Delete. * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION) (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete. (FINI_SECTION_FUNCTION): Delete. (TARGET_ASM_INIT_SECTIONS): Define. (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION) (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION) (READONLY_DATA_SECTION): Delete. (TARGET_ASM_INIT_SECTIONS): Define. (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section to NULL rather than no_section. (TARGET_ASM_EXCEPTION_SECTION): Delete. * config/sh/sh.c (sh_file_start): Use switch_to_section. * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section. (sparc_output_deferred_case_vectors): Likewise. Remove argument from call to current_function_section. * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h. (bss100_section): New variable. (xstormy16_asm_output_aligned_common): Use switch_to_section. (xstormy16_asm_init_sections): New function. (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use switch_to_section and get_section. (xstormy16_output_addr_vec): Use switch_to_section. Remove argument from calls to current_function_section. * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete. (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete. (TARGET_ASM_INIT_SECTIONS): Define. * config/stormy16/stormy16-protos.h (bss100_section): Delete. * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section. (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION) (FINI_SECTION_FUNCTION): Delete. * config/v850/v850.c: Include gt-v850.h. (rosdata_section, rozdata_section, tdata_section, zdata_section) (zbss_section): New variables. (v850_output_aligned_bss): Use switch_to_section. (v850_asm_init_sections): New function. (v850_select_section): Return the section rather than emitting assembly code. * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP) (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete. (TARGET_ASM_INIT_SECTIONS): Define. * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete. (sbss_section, tdata_section, zdata_section, rozdata_section): Delete. (zbss_section): Delete. * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section. * config/vx-common.h (vxworks_exception_section): Delete. (TARGET_ASM_EXCEPTION_SECTION): Delete. * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the section rather than emitting assembly code. * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use switch_to_section. * Makefile.in (GTFILES): Add $(srcdir)/output.h. * coretypes.h (section): New union and typedef. * dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument from call to current_function_section. (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish) (dbxout_symbol_location): Use switch_to_section. * dwarf2out.c (named_section_eh_frame_section): Delete, moving most of the code into... (default_eh_frame_section): ...here. Return a section. (collect2_eh_frame_section): Delete, moving most of the code into.. (switch_to_eh_frame_section): ...this new function. (debug_info_section, debug_abbrev_section, debug_aranges_section) (debug_macinfo_section, debug_line_section, debug_loc_section) (debug_pubnames_section, debug_str_section, debug_ranges_section): New variables. (output_call_frame_info): Call switch_to_eh_frame_section instead of eh_frame_section. Use switch_to_section and get_section. (dwarf2out_begin_prologue): Use switch_to_section. (AT_string_form): Check the flags in debug_str_section instead of DEBUG_STR_SECTION_FLAGS. (output_comp_unit): Use switch_to_section, get_section, and debug_info_section. (output_line_info, secname_for_decl): Use unlikely_text_section_p. (dwarf2out_begin_block): Use switch_to_section. Remove argument from call to current_function_section. (dwarf2out_var_location): Use unlikely_text_section_p. (dwarf2out_source_line): Use switch_to_section. Remove argument from call to current_function_section. (dwarf2out_start_source_file, dwarf2out_end_source_file) (dwarf2out_define, dwarf2out_undef: Use switch_to_section and debug_macinfo_section. (dwarf2out_init): Initialize the new section variables. Use them instead of calls to named_section_flags. Use switch_to_section. (output_indirect_string): Use switch_to_section and debug_str_section. (dwarf2out_finish): Use switch_to_section and the new section variables. * except.c (default_exception_section): Return the section instead of emitting assembly code. (output_function_exception_table): Use the global exception_section variable instead of the target hook. Use switch_to_section. Remove argument from call to current_function_section. * final.c (HAVE_READONLY_DATA_SECTION): Delete. (shorten_branches): Use pointer comparisons to detect whether the text section is the same as readonly_data_section. (profile_function): Use switch_to_section. Remove argument from call to current_function_section. (final_scan_insn): Likewise. Update use of last_text_section. * gengtype.c (open_base_files): Add an include of output.h. * output.h (text_section, data_section, readonly_data_section) (ctors_section, dtors_section, bss_section, init_section) (fini_section, sdata_section): Turn into section pointers. (in_text_section, in_unlikely_text_section, exports_section) (drectve_section, named_section, mergeable_string_section) (last_text_section_name): Delete. (default_exception_section, default_eh_frame_section): Return sections. (SECTION_DECLARED, SECTION_NAMED): New macros. (SECTION_MACH_DEP): Bump value. (section_common, named_section, unnamed_section): New structures. (unnamed_section_callback): New typedef. (section): New union. (sbss_section, exception_section, eh_frame_section): New variables. (in_section, last_text_section): Turn into section pointers. (get_unnamed_section, get_section, get_named_section): New functions. (mergeable_constant_section, function_section): Return a section. (unlikely_text_section): Likewise. (current_function_section): Likewise. Remove the decl argument. (unlikely_text_section_p, switch_to_section): New functions. (output_section_asm_op): New function. (set_named_section_flags, named_section_flags, named_section_real) (named_section_first_declaration): Delete. (default_select_section, default_elf_select_section): Return a section. (default_elf_select_section_1, default_function_rodata_section) (default_no_function_rodata_section, default_select_rtx_section) (default_elf_select_rtx_section): Likewise. * rtl.h (in_data_section): Delete. * sdbout.c (sdbout_one_type): Use switch_to_section. * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison. (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison. (TARGET_ASM_EH_FRAME_SECTION): Poison. * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro. (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete. (TARGET_ASM_OUT): Update after above changes. * target.h (init_sections): New hook. (exception_section, eh_frame_section): Delete. (select_section, select_rtx_section, function_rodata_section): Return a section rather than emitting assembly code. * varasm.c (text_section, data_section, readonly_data_section) (ctors_section, dtors_section, bss_section, init_section) (fini_section): Turn into section pointers. (sdata_section, sbss_section, exception_section): New variables. (eh_frame_section): New variable. (in_section): Make global and turn into a section pointer. (last_text_section): Turn into a section pointer. (unnamed_sections): New variable. (in_named_name, last_text_section_name): Delete. (EXTRA_SECTION_FUNCTIONS): Delete. (in_named_entry): Delete. (section_htab): New variable, replacing... (in_named_htab): ...this deleted variable. (section_entry_eq, section_entry_hash): New functions, based on... (in_named_entry_eq, in_named_entry_hash): ...these deleted functions. (get_unnamed_section, get_section): New functions. (unlikely_text_section): Return a section instead of emitting assembly code. (in_text_section, in_unlikely_text_section, in_data_section): Delete. (get_named_section_flags, named_section_first_declaration): Delete. (unlikely_text_section_p): New function. (named_section_real, named_section): Delete. (get_named_section): New function. (asm_output_bss, asm_output_aligned_bss): Use switch_to_section. (function_section): Return a section rather than emitting assembly code. (current_function_section): Likewise. Remove argument. Use last_text_section if nonnull, otherwise use function_section. (default_function_rodata_section): Return a section rather than emitting assembly code. Use get_section. (default_no_function_rodata_section): Return a section rather than emitting assembly code. (variable_section): Use switch_to_section and get_named_section. (mergeable_string_section): Return a section rather than emitting assembly code. Use get_section. Make static. Don't take special countermeasures for empty strings. (mergeable_constant_section): Return a section rather than emitting assembly code. Use get_section. (default_named_section_asm_out_destructor): Use switch_to_section and get_section. (default_dtor_section_asm_out_destructor): Use switch_to_section. (default_named_section_asm_out_constructor): Use switch_to_section and get_section. (default_ctor_section_asm_out_constructor): Use switch_to_section. (assemble_start_function): Likewise. Set last_text_section to NULL rather than no_section. Change the type of save_section. (assemble_zeros, assemble_variable): Use the section flags to detect whether or not a section is text. (assemble_static_space): Use switch_to_section. (assemble_trampoline_template): Likewise. (output_constant_def_contents): Use switch_to_section and get_named_section. (output_constant_pool_1): Use switch_to_section. Use the section flags to see whether sections contain mergeable data. (init_varasm_once): Initialize section_htab instead of in_named_htab. Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS. (default_elf_asm_named_section): Use SECTION_DECLARED to detect whether a section has already been declared. (default_select_section, default_elf_select_section): Return a section rather than emitting assembly code. (default_elf_select_section_1): Likewise. Use bss_section for SECCAT_BSS if nonnull. Use get_named_section. (default_select_rtx_section): Return a section rather than emitting assembly code. (default_elf_select_rtx_section): Likewise. Use get_named_section. (file_end_indicate_exec_stack): Use switch_to_section and get_section. (output_section_asm_op, switch_to_section): New functions. * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and get_named_section. * doc/tm.texi: Expand the introduction to the sections documentation. (TRAMPOLINE_SECTION): Document new interface. (SDATA_SECTION_ASM_OP): Document new macro. (READONLY_DATA_SECTION): Delete. (SDATA_SECTION_ASM_OP): Document new macro. (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. (TARGET_ASM_INIT_SECTIONS): Document new hook. (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION) (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface. (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete. 2005-12-07 Alan Modra * gcc.c (init_gcc_specs): Match braces inside conditionally compiled strings. 2005-12-06 Geoffrey Keating * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New. 2005-12-06 Aldy Hernandez PR C++/24138 * tree.c (integer_all_onesp): Always return true if all bits on. * testsuite/g++.dg/init/array0.C: New. 2005-12-06 Adrian Straetling * doc/md.texi: Adapt to implementation. 2005-12-06 Andreas Schwab * opts.c (decode_options): Fix typo in message. 2005-12-06 Alan Modra PR other/13873 * longlong.h: Merge PPC tests from upstream. 2005-12-06 Richard Guenther * fold-const.c (fold_convert): Do not build and fold CONVERT_EXPR, but always use NOP_EXPR. 2005-12-06 Jan Beulich * config/i386/i386.c (builtin_description): Use MASK_SSE2 for __builtin_ia32_paddq and __builtin_ia32_subq. (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for __builtin_ia32_pshufw. * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2. 2005-12-05 James E Wilson PR target/24934 * opts.c (decode_options): Turn off partitioning if flag_unwind_tables is set. 2005-12-05 Daniel Berlin * print-tree.c (print_node): Ditto. * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL. * tree-dump.c (dequeue_and_dump): Check for decl_common structure before accessing DECL_ARTIFICIAL. Handle new tag tree codes. * tree-flow-inline.h (clear_call_clobbered): Update for tag changes. (unmodifiable_var_p): Ditto. * tree-flow.h (mem_tag_kind): Remove. (struct var_ann_d): Remove mem_tag_kind member. * tree-gimple.c (is_gimple_reg): Tags are not gimple registers. * tree-pretty-print.c (dump_generic_node): Handle memory tags. * tree-ssa-alias.c (init_alias_info): Update for memory tag changes. (group_aliases): Ditto. (setup_pointers_and_addressables): Ditto. (is_escape_site): Ditto. (may_alias_p): Ditto. (create_tag_raw): New function. (create_memory_tag): Use it. (dump_alias_info): Update for tags. (may_be_aliased): Ditto. (add_type_alias): Ditto. (new_type_alias): Ditto. (create_sft): Ditto. (create_structure_vars): Ditto. * tree-ssa-ccp.c (get_default_value): Ditto. * tree-ssa-operands.c (get_expr_operands): Ditto. (add_stmt_operand): Ditto. (add_call_clobber_ops): Remove duplicated condition. * tree-ssa.c (verify_flow_insensitive_alias_info): Update for tags. * tree-tailcall.c (suitable_for_tail_opt_p): Ditto. * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto. * tree.c (init_ttree): Update structures for new tree codes. (tree_code_size): Update sizes for new tree codes. (make_node_stat): Don't try to set common things on minimal structures. (tree_node_structure): Update for tags. (is_global_var): Ditto. * tree.def: Add new tree codes. * tree.h (MTAG_P): New macro. (TREE_MEMORY_TAG_CHECK): Ditto. (SSA_VAR_P): Update for tags. (struct tree_memory_tag): New structure. (MTAG_GLOBAL): New macro. (union tree_node): Add memory tag member. * treestruct.def (TS_MEMORY_TAG): New. 2005-12-05 Dale Johannesen * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match what was approved (PR 24323). 2005-12-05 Gabriel Dos Reis * doc/c-tree.texi (Function Bodies): Remove description of RETURN_INIT. 2005-12-05 Joseph S. Myers * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf, __floatunsixf, __floatundisf, __floatundidf, __floatunditf, __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf, __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3, __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3, __divxc3): Document. 2005-12-05 Geoffrey Keating * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve previous behaviour. * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to hook_bool_void_false. (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define. * config/darwin.c (darwin_cxx_determine_class_data_visibility): New. * config/darwin.c (machopic_select_section): It's not defined as weak if it's only marked as weak_import. * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility): Prototype. * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally. A hidden weak object does bind locally. Strong linkonce data counts like any other strong symbol for binding. (weak_finish_1): Don't specially handle weakrefs, they no longer arrive here. (assemble_alias): Weakrefs can't be TREE_PUBLIC yet. * c-common.c (handle_alias_attribute): Allow static aliases of variables. (handle_weakref_attribute): Don't call declare_weak on weakrefs. * gthr-dce.h: Make weakrefs static. * gthr-tpf.h: Likewise. * gthr-solaris.h: Likewise. * gthr-posix.h: Likewise. * gthr-posix95.h: Likewise. * config/darwin.c (darwin_encode_section_info): static weakref variables are not necessarily defined in this translation unit. * doc/extend.texi (Function Attributes): Mention that an alias attribute creates a definition for the thing it's attached to. Change the documentation for weakref to say that the thing it's attached to must be static. * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so we don't go into an infinite loop. 2005-12-05 Paolo Bonzini * config/rs6000/predicates.md (logical_const_operand): Split out of logical_operand. (logical_operand): Use it. * config/rs6000/rs6000.md (cmp -> xor peephole2): Use logical_const_operand. 2005-12-05 Jan Beulich * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS and IX86_BUILTIN_CMPNESS. (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti. * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly. * config/i386/i386.md (movti_internal): Correct type attribute. Simplify mode attribute. (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal): Correct type attribute. (absxf2): Correct operator. * config/i386/mmx.md (mov_internal_rex64, mov_internal, movv2sf_internal_rex64, movv2sf_internal): Correct type attribute. * config/i386/sse.md (mov_internal, movv2df_internal): Simplify mode attribute. (sse2_vmsqrtv2df2): Correct mode attribute. 2005-12-05 Jan Beulich * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by 16 bits. Provide insn pattern for this case. 2005-12-05 Jan Beulich * libgcc2.c (__popcountSI2): Don't use wide type for iterator and result. (__popcountDI2): Likewise. 2005-12-04 John David Anglin PR target/25166 * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs. * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New functions. 2005-12-04 Joseph S. Myers * c-typeck.c (null_pointer_constant_p): New function. (build_conditional_expr, build_c_cast, convert_for_assignment, build_binary_op): Use it. 2005-12-04 Joseph S. Myers * c-common.c (binary_op_error): Do not allow NOP_EXPR. (c_common_truthvalue_conversion): Handle NOP_EXPR the same as CONVERT_EXPR. (check_function_arguments_recurse): Allow both NOP_EXPR and CONVERT_EXPR but check conversions preserve precision. * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR but check conversions preserve precision. (build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in default case. 2005-12-04 Roger Sayle PR c/7776 * common.opt (Wstring-literal-comparison): New command line option. * c-opts.c (c_common_handle_option): Set it with -Wall. * c-typeck.c (parser_build_binary_op): Issue warning if either operand of a comparison operator is a string literal, except for testing equality or inequality against NULL. * doc/invoke.texi: Document new -Wstring-literal-comparison option. 2005-12-03 Joseph S. Myers * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead of building a NOP_EXPR. (c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as NOP_EXPR. * c-convert.c (convert): Use fold_convert instead of building NOP_EXPRs and CONVERT_EXPRs directly. Don't special case c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove #if 0 code. * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle NOP_EXPR the same as CONVERT_EXPR. * c-typeck.c (build_function_call): Use fold_convert instead of building a NOP_EXPR directly. (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR. 2005-12-03 Alan Modra PR rtl-optimization/25197 * dwarf2out.c (dwarf2out_frame_debug_expr ): Assert we have a reg. 2005-12-02 Stuart Hastings * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic warning. 2005-12-03 Joseph S. Myers * c-typeck.c (default_function_array_conversion, build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR. (build_conditional_expr): Apply integer_zerop to orig_op1 and orig_op2. Don't check them for NOP_EXPR. (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR around integer zero. 2005-12-03 Alan Modra * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p, toc_save_offset, toc_size, lr_size. (rs6000_stack_info): Use memset rather than bss struct copy to init. Test rs6000_ra_ever_killed last in condition setting lr_save_p. Adjust for removal of unused rs6000_stack_t fields. (debug_stack_info): Adjust. (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls first, and don't bother checking for set/inc of lr on sibcalls. (rs6000_emit_epilogue): Tidy code restoring stack pointer. 2005-12-02 Jakub Jelinek PR target/25199 * config/i386/i386.md (movqi_1): Only force imovx for alternative 5 if operand 1 is not aligned. Undo previous constraint change. * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN. 2005-12-02 Richard Guenther * tree.h (build): Remove prototype. (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros. * tree.c (build): Remove. (build0_stat): Update comment. 2005-12-02 Richard Guenther * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build. * tree-complex.c (update_complex_assignment, expand_complex_div_wide): Likewise. * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref, maybe_fold_offset_to_component_ref): Likewise. * tree-ssa-dom.c (thread_across_edge, simplify_rhs_and_lookup_avail_expr, find_equivalent_equality_comparison, record_equivalences_from_stmt): Likewise. * gimple-low.c (lower_function_body, lower_return_expr): Likewise. * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions, lower_try_finally_switch): Likewise. * tree-if-conv.c (add_to_dst_predicate_list, replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise. * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter, voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr, gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr, gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr, shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr, gimplify_init_ctor_eval, gimplify_init_constructor, gimplify_variable_sized_compare, gimplify_boolean_expr, gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr, gimplify_expr, gimplify_body, gimplify_function_tree, force_gimple_operand): Likewise. * tree-ssa-pre.c (create_expression_by_pieces): Likewise. * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for, mx_register_decls): Likewise. * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain, get_frame_field, finalize_nesting_tree_1): Likewise. * tree-inline.c (setup_one_parameter): Likewise. * tree-vect-transform.c (vectorizable_condition): Likewise. * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies): Likewise. * tree-profile.c (tree_gen_edge_profiler): Likewise. * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise. * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise. * tree-chrec.h (build_polynomial_chrec): Likewise. 2005-12-02 Richard Guenther * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i, alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable. * config/frv/frv.c (frv_expand_builtin_va_start): Likewise. * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): Likewise. * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr, sh_adjust_unroll_max): Likewise. * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr): Likewise. * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Likewise. * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr): Likewise. 2005-12-02 Richard Guenther * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for, simplify_cond_using_ranges): Use buildN instead of build. * tree-tailcall.c (adjust_accumulator_values, adjust_return_value): Likewise. * tree-sra.c (generate_one_element_ref, generate_copy_inout, generate_element_copy, generate_element_zero, generate_one_element_init): Likewise. * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise. * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression, lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest, perfect_nestify): Likewise. 2005-12-02 John David Anglin * pa.c (pa_secondary_reload): Revise initialization of variable regno. 2005-12-02 Gabriel Dos Reis * ggc.h (GGC_RESIZEVEC): New. 2005-12-02 Volker Reichelt * gcc.c (execute): Improve readability. 2005-12-02 Richard Guenther * tree-cfg.c (mark_used_vars): New function. (dump_function_to_file): Dump only used VAR_DECLs. 2005-12-02 Richard Guenther * convert.c (convert_to_integer): Fix compare for nonpositive constant to use tree_int_cst_sgn <= 0. 2005-12-02 Richard Guenther * convert.c (convert_to_integer): Use fold_convert instead of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0 instead of comparing against 0. Use build_int_cst instead of converting integer_zero_node. 2005-12-02 Richard Guenther * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR and RROTATE_EXPR. 2005-12-02 Alan Modra PR target/21017 * combine.c (simplify_logical ): Simplify more patterns to rotates. 2005-12-02 Alan Modra PR middle-end/25176 * function.c (expand_function_end): Emit blockage for unwinder after return label. 2005-12-01 Roger Sayle * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to constant nodes, i.e. INTEGER_CST, REAL_CST, etc... * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for integer constant comparisons. 2005-12-02 Jon Grimm Janis Johnson David Edelsohn Ben Elliston * dfp.h, dfp.c: New files. * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables. (DECNUM_H): Likewise. (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER). (INCLUDES): Append $(DECNUMINC). (OBJS-common): Add dfp.o. (dfp.o): New rule. * real.h (EXP_BITS): Pinch one bit to .. (struct real_value): Add decimal field. (real_format): Change table size, update documentation. (REAL_MODE_FORMAT): Update for to handle float, decimal float. (real_from_string3): Declare. (decimal_single_format): Declare. (decimal_double_format): Declare. (decimal_quad_format): Declare. (REAL_VALUE_TO_TARGET_DECIMAL32): New. (REAL_VALUE_TO_TARGET_DECIMAL64): New. (REAL_VALUE_TO_TARGET_DECIMAL128): New. * real.c: Include dfp.h. (normalize): Early return for decimal floats. (do_add): Zero decimal field. (do_compare): Call do_decimal_compare for decimal floats. (do_fix_trunc): Likewise, call decimal_do_fix_trunc. (real_arithmetic): Call decimal_real_arithmetic for decimal floating point operands. (real_identical): If a and b are of differing radix, return false. (real_to_integer): Call decimal_real_to_integer if the value is a decimal float. (real_to_integer2): Likewise, call decimal_real_to_integer2. (real_to_decimal): Likewise, call decimal_real_to_decimal. (real_to_hexadecimal): Place "N/A" in the return string for decimal float. (real_from_string3): New variant, given a mode. (real_maxval): Use decimal_real_maxval for decimal floats. (round_for_format): Use decimal_round_for_format for decimals. (real_convert): Use decimal_real_convert where appropriate. (significand_size): Handle base 10. (encode_decimal_single, decode_decimal_single, encode_decimal_double, decode_decimal_double, encode_decimal_quad, decode_decimal_quad): New functions. (decimal_single_format): New. (decimal_double_format): New. (decimal_quad_format): New. * machmode.def: Add SD, DD and TD decimal floating point modes. * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P): Include MODE_DECIMAL_FLOAT. (DECIMAL_FLOAT_MODE_P): New. * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class. * genmodes.c (struct mode_data): Add counter field. (struct mode_data): Update comment for format. (blank_mode): Initialise counter field. (new_mode): Increment counter field for each mode defined. (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode using a format. (make_complex_modes): Handle modes containing `D'. (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New. (make_decimal_float_mode): New. (reset_float_format): Handle MODE_DECIMAL_FLOAT. (cmp_modes): Compare counter field if other characteristics similar. (emit_real_format_for_mode): Support formats for decimal floats. * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes. Document MODE_DECIMAL_FLOAT. 2005-12-02 Alan Modra * simplify-rtx.c (simplify_plus_minus): Do simplify constants. Delete dead code. 2005-12-01 Richard Henderson * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL. 2005-12-01 Kaveh R. Ghazi * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New. * config/pa/pa.c (pa_init_builtins): If we detect DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to putc_unlocked. 2005-12-01 Richard Guenther * fold-const.c (fold_binary): Use fold_build2, not fold (build (...)). 2005-12-01 Nathan Sidwell * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves. * vec.h (VEC_block_remove): New. 2005-12-01 Gabriel Dos Reis PR c/13384 * c-common.c (lvalue_error): Fix wording. 2005-12-01 Richard Guenther * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix thinko in last patch. 2005-12-01 Geoffrey Keating * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather than -flat_namespace. 2005-12-01 Ben Elliston * mklibgcc.in: Parameterise the script to build soft float functions by iterating over each type, rather than cloning the code for each type. 2005-11-30 Kaveh R. Ghazi PR middle-end/25158 * builtins.c (fold_builtin_fputs): Defer check for missing replacement functions. 2005-11-30 Kean Johnston * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not simply its presense in case targets #define SUPPORTS_ONE_ONLY 0. 2005-11-30 Richard Guenther PR tree-optimization/22501 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New function split out from ... (forward_propagate_addr_expr): ... here. Use it to propagate ADDR_EXPRs to all uses. 2005-11-30 Volker Reichelt * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros. * builtins.c (expand_builtin_mathfn): Use them. (expand_builtin_mathfn_2): Likewise. (expand_builtin_mathfn_3): Likewise. (expand_builtin_int_roundingfn): Likewise. (expand_builtin): Likewise. (integer_valued_real_p): Likewise. (fold_builtin_int_roundingfn): Likewise. (fold_builtin_bitop): Likewise. (fold_builtin_logarithm): Likewise. (fold_builtin_1): Likewise. * convert.c (convert_to_integer): Likewise. * fold-const.c (negate_mathfn_p): Likewise. (tree_expr_nonnegative_p): Likewise. 2005-11-30 Dale Johannesen Andrew Pinski * combine.c (find_split_point): Sign extend bitmask when changing bitfield assignment to IOR of AND. 2005-11-30 Nathan Sidwell * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early clobber to scratch reg. (*decrement_and_branch_until_zero_no_clobber): Remove. (decrement_and_branch peephole): Add dummy scratch reg to pattern. (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2. * config/ms1/ms1.opt (mmul): Remove. * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names. (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002. 2005-11-30 John David Anglin Bernd Schmidt * pa/predicates.md (symbolic_operand): Add comment. * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders. * pa/pa-protos.h (pa_secondary_reload_class): Delete. * pa/pa.c (TARGET_SECONDARY_RELOAD): Define. (pa_secondary_reload_class): Delete. (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS and pa_secondary_reload_class. Reorder some checks. Update inline copy of symbolic operand. * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete. 2005-11-30 Nathan Sidwell * loop-doloop.c (add_test): Only add jump notes if we did emit a jump. 2005-11-30 Jeff Law * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI. 2005-11-30 Jakub Jelinek * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument. Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case. (ia64_expand_move): Adjust caller. * config/ia64/ia64.c (ia64_expand_atomic_op): Only use fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS negate VAL. 2005-11-30 Paolo Bonzini * simplify-rtx.c (simplify_plus_minus): Remove final parameter. Always produce an output if we can remove NEGs or canonicalize (minus (minus ...)) expressions. Provide a fast path for the two-operand case. (simplify_gen_binary): Do not call simplify_plus_minus. (simplify_binary_operation_1): Reassociate at the end of the function. 2005-11-29 Evan Cheng * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low moves and unpack to speed up. 2005-11-29 David S. Miller * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd argument, they are always sparc_compare_op0 and sparc_compare_op1. (gen_v9_scc): Update callers. * config/sparc/sparc.md: Likewise. * config/sparc/sparc-protos.h: Update extern declaration. * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo. 2005-11-29 Andrew Pinski * fold-const.c (negate_expr) : Add break after the if. 2005-11-29 Andrew Pinski * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR. (fold_unary) : Move -(~a) transformation to ... (negate_expr): Here. 2005-11-29 Ben Elliston * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Fix typo in comment. 2005-11-29 Ben Elliston * Makefile.in (clean-target): Depend on clean-target-libgcc. (clean-target-libgcc): Import rule from the top-level Makefile.in. 2005-11-29 Kaveh R. Ghazi PR middle-end/20109 PR middle-end/25120 * builtins.c (init_target_chars): New. (expand_builtin_printf, expand_builtin_fprintf, expand_builtin_sprintf, fold_builtin_sprintf, maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk, fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf): Check for matching format strings using the target charset. 2005-11-29 Paul Brook * config.gcc: Do not use fixproto on m68k-elf. 2005-11-28 Roger Sayle * expmed.c (div_cost): Replace with... (sdiv_cost, udiv_cost): New. (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost. Rename the div and mod fields, used to initialize sdiv_pow2_cheap and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion. (expand_divmod): Replace use of div_cost with either sdiv_cost or udiv_cost depending upon the signedness of the operation. 2005-11-28 Alexandre Oliva PR libfortran/24991 * config/darwin.c (machopic_indirection_name, machopic_output_indirection): Follow transparent alias chain. 2005-11-28 Alexandre Oliva * varasm.c (ultimate_transparent_alias_target): Add comment. 2005-11-28 Kazu Hirata * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and SET_SRC instead of XEXP where appropriate. 2005-11-28 Joseph S. Myers * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use __builtin_expect. 2005-11-28 Joseph S. Myers * config/fp-bit.h (LSHIFT): Take shift count parameter. * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one bit at a time. 2005-11-28 Bernd Schmidt * config/bfin/bfin.c (bfin_secondary_reload): Renamed from secondary_input_reload_class, made static. Adapt to new infrastructure. (secondary_output_reload_class): Delete. (TARGET_SECONDARY_RELOAD): New macro. * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Delete. 2005-11-28 Nathan Sidwell PR c++/21166 * c-decl.c (finish_struct): Only set DECL_PACKED on a field when its natural alignment is > BITS_PER_UNIT. * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08. * c-common.c (handle_packed_attribute): Ignore packing on a field whose type is naturally char aligned. 2005-11-28 Richard Guenther * c-common.c (strict_aliasing_warning): Handle all component-ref like accesses. 2005-11-28 Roger Sayle Uros Bizjak PR middle-end/20219 * fold-const.c (fold binary) : Optimize sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x) when flag_unsafe_math_optimizations is set and we don't care about NaNs or Infinities. Move x/expN(y) and x/pow(y,z) transformation into common flag_unsafe_math_optimizations section. 2005-11-27 Mark Mitchell * gcc.c (main): Change type of argv to "char **". 2005-11-28 Alan Modra * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in small data sections. * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global. * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare. * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to.. (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't output locals to sbss if !rs6000_elf_in_small_data_p. (ASM_OUTPUT_ALIGNED_BSS): Adjust for above. 2005-11-28 Alan Modra PR target/24997 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern generated by reload. * config/rs6000/predicates.md (indexed_or_indirect_operand): Use indexed_or_indirect_address. (indexed_or_indirect_address): Don't test for base reg. Call address_operand last. Make it a special predicate. 2005-11-27 Kazu Hirata * config/m68k/m68k.c (notice_update_cc): Remove useless code. 2005-11-27 Andrew Pinski PR middle-end/24575 * fold-const.c (negate_expr_p): Add case for signed divides if overflow is undefined. (negate_expr): Likewise. 2005-11-27 Andreas Schwab * config/m68k/m68k.c: Reindent and fix whitespace, remove redundant parens. 2005-11-27 Steven Bosscher * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it has EH predecessor edges. 2005-11-26 Eric Christopher * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial register stalls by zero extending to the full register. 2005-11-27 Joseph S. Myers * config/floatunsisf.c, config/floatunsidf.c, config/floatunsixf.c, config/floatunsitf.c: New files. * config/ia64/t-hpux: Add floatunsitf.c. * config/ia64/ia64.c (ia64_init_libfuncs): Use _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion. 2005-11-26 Richard Henderson * c-lex.c (pragma_lex): Rename from c_lex. * c-pch.c: Update for pragma_lex rename. * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise. * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise. * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise. * config/sol2-c.c, config/v850/v850-c.c: Likewise. * doc/tm.texi: Likewise. 2005-11-26 Andrew Pinski PR middle-end/23669 * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types when overflow is undefined. 2005-11-26 Hans-Peter Nilsson * doc/md.texi (Insn Canonicalizations): Refer to the function commutative_operand_precedence for further rules. 2005-11-25 Roger Sayle PR middle-end/21309 * expmed.c (choose_mult_variant): Return immediately when mult_cost is less than zero. Limit mult_cost to a reasonable upper bound for the synthetic multiplication sequence. 2005-11-25 Kaveh R. Ghazi PR middle-end/25022 * builtins.c (expand_builtin_printf, expand_builtin_fprintf, fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf): Lookup the explicit replacement functions for any unlocked stdio builtin transformations. 2005-11-25 Hans-Peter Nilsson * config/cris/cris.md ("reload_out"): Mark operand 2 as earlyclobber. * targhooks.c (default_secondary_reload): Don't require operand 2 for an input reload to be earlyclobber. 2005-11-25 Volker Reichelt * fold-const.c (negate_mathfn_p): Fix comment and add support for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH, BUILT_IN_ATANH. 2005-11-25 Joseph S. Myers PR middle-end/24998 * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and _Q_ulltoq for unsigned conversions from SImode and DImode to TFmode. 2005-11-25 Alan Modra * config/rs6000/ppc64-fp.c (__floatunditf): New function. (__floatundidf, __floatundisf): Likewise. 2005-11-25 David Edelsohn * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete. (rs6000_override_options): Remove initialization of rs6000_sr_alias_set. (rs6000_emit_eh_reg_restore): Use gen_frame_mem. (rs6000_emit_stack_tie): Same. (emit_frame_save): Same. (gen_frame_mem_offset): Same. (rs6000_emit_prologue): Same. (rs6000_emit_epilogue): Same. 2005-11-25 Andrew Pinski PR middle-end/24989 * fold-const.c (fold_build): Convert bool_var != 1 and bool_var == 0 to !bool_var. 2005-11-25 Andrew Pinski PR middle-end/24990 * fold-const.c (fold_binary): Fold (~a) == C to a == ~C for C being INTEGER_CST. Likewise for !=. 2005-11-25 Joseph S. Myers PR middle-end/24998 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for unsigned conversions from SImode to TFmode. 2005-11-24 Bernd Schmidt * expr.c (expand_expr_real_1): Fix error in last change. 2005-11-24 J"orn Rennecke * caller-save.c: (this_insn_sets): Move into: (save_call_clobbered_regs). (mark_set_regs): Get this_insn_sets from data. (save_call_clobbered_regs): Take sets of the return value by sibcalls into account. 2005-11-24 J"orn Rennecke PR target/21623: * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests. (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test. (memory_move_secondary_cost, init_reg_autoinc): Remove SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call. (copy_cost): Likewise. Add new parameter prev_sri. Changed all callers. * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks. (push_secondary_reload): Use secondary_reload target hook. (secondary_reload_class, scratch_reload_class): New functions. (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call. * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test. (secondary_reload_class, scratch_reload_class): Declare. * reload1.c: Include target.h. (reload_adjust_reg_for_temp): New function. (reload_adjust_reg_for_icode): Likewise. (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test. Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class call. (emit_input_reload_insns): Likewise. Rewrite secondary reload checks for inheritance. Support case when both secondary & tertiary reloads are for intermediate registers. (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use with secondary_reload_class call. Support case when both secondary & tertiary reloads are for intermediate registers. * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition. (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD. * target.h (secondary_reload_info): New struct / typedef. (struct gcc_target): New member secondary_reload. * targhooks.c Include reload.h, optabs.h and recog.h. (default_secondary_reload): New function. * targhooks.h (default_secondary_reload): Declare. * doc/tm.texi: Document secondary_reload target hook. Update description of SECONDARY_*RELOAD_CLASS and reload_{in,out}. * doc/md.texi: Likewise. * sh-protos.h (sh_secondary_reload): Declare. * sh.c (TARGET_SECONDARY_RELOAD): Override. (sh_secondary_reload): New function. * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define. (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. (SECONDARY_INPUT_RELOAD_CLASS): Likewise. (HAVE_SECONDARY_RELOADS): Define. * sh.md (reload_indf): Rename to: (reload_indf__frn). (reload_outdf): Rename to: (reload_outdf__RnFRm). (reload_insf): Rename to: (reload_insf__frn). (reload_insi): Rename to: (reload_insi__i_fpul). 2005-11-24 Uros Bizjak * configure.ac: Require at least texinfo 4.4. * configure: Regenerate. * doc/install.texi (Tools/packages necessary for building GCC): Update required version of texinfo to at least 4.4. (Installing GCC: Building): Update required version of texinfo to at least 4.4. (Installing GCC: Final installation): Update required version of texi2dvi to at least 4.4. (Host/target specific installation notes for GCC): Update required version of texinfo to at least 4.4. 2005-11-24 Richard Guenther Dirk Mueller PR c++/14024 * c-common.h (strict_aliasing_warning): Declare. * c-common.c (strict_aliasing_warning): New function, split out from ... * c-typeck.c (build_c_cast): ... here. 2005-11-24 Paolo Bonzini * optabs.c (expand_binop): Use swap_commutative_operands_with_target to order operands. (swap_commutative_operands_with_target): New. 2005-11-24 Paolo Bonzini * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes also when doing PRE, rather than only for global CPROP. 2005-11-24 Ben Elliston * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro. * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve formatting. (expand_twoval_unop): Likewise. (widen_clz): Likewise. (expand_parity): Likewise. (expand_unop): Likewise. (emit_cmp_and_jmp_insn_1): Likewise. (prepare_float_lib_cmp): Likewise. 2005-11-24 Ben Elliston * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P. Remove unused `class' variable. 2005-11-23 Gabriel Dos Reis PR c++/21667 * c-typeck.c (build_array_ref): Avoid code duplicate. Use common C/C++ diagnostic function warn_array_subscript_with_type_char. * c-common.h (warn_array_subscript_with_type_char): Declare. * c-common.c (warn_array_subscript_with_type_char): Define. 2005-11-23 Gabriel Dos Reis PR c/21668 * c-decl.c (grokdeclarator): Don't warn for 'extern const' when compiling at the intersection of C and C++. 2005-11-23 Mark Mitchell * doc/invoke.texi: For man pages, include gcc-vers.texi. List @file in the option summary. Include the libiberty documentation for @file. * gcc.c (main): Call expandargv. * Makefile.in (gcc-vers.texi): Define srcdir. 2005-11-23 Diego Novillo * passes.c (init_optimization_passes): Document sequencing of passes. 2005-11-23 Kazu Hirata * config/m68k/predicates.md (pcrel_address, extend_operator, post_inc_operand, pre_dec_operand): Remove redundant conditionals. (const_uint32_operand, const_sint32_operand): Use gcc_assert instead of abort. (valid_dbcc_comparison_p): Rewrite in the lisp style. 2005-11-23 Ben Elliston * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float. 2005-11-22 J"orn Rennecke Preparatory work for PR target/21623: * alpha.c (secondary_reload_class): Rename to: (alpha_secondary_reload_class). * alpha.h, alpha-protos.h: Likewise. * mn10300.c (secondary_reload_class): Rename to: (mn10300_secondary_reload_class). * mn10300.h, mn10300-protos.h: Likewise. * pa.c (secondary_reload_class): Rename to: (pa_secondary_reload_class). * pa.h, pa-protos.h: Likewise. * rs6000.c (secondary_reload_class): Rename to: rs6000_secondary_reload_class. * rs6000.h, rs6000-protos.h: Likewise. 2005-11-22 Eric Botcazou PR middle-end/22561 * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF. 2005-11-22 Ian Lance Taylor * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not a mode_class. (prepare_cmp_insn): Likewise. 2005-11-22 Kazu Hirata PR target/23435 * m68k.md (zero_extendsidi2): Force operands[1] to a register if both operands[0] and operands[1] are memory. 2005-11-22 Andrew Pinski PR middle-end/23606 * fold-const.c (fold_unary) : For COMPARISON_CLASS_P and an integral types create create a new expression with the new type and fold that. 2005-11-22 Andrew Pinski PR target/24988 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call to SUBTARGET_OS_CPP_BUILTINS. 2005-11-22 Richard Earnshaw * arm.c (emit_set_insn): New function. (arm_split_constant): Call it. (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise. (arm_legitimize_address): Likewise. Use plus_constant. (arm_expand_prologue): Likewise. Use VOIDmode in SET. (thumb_expand_prologue): Likewise. (arm_gen_load_multiple): Use VOIDmode in SET. (arm_gen_store_multiple): Likewise. (vfp_emit_fstmx): Likewise. Use plus_constant. (emit_multi_reg_push): Likewise. (emit_sfm): Use plus_constant. 2005-11-23 Alan Modra PR target/24954 * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix typo last change. 2005-11-22 Alan Modra PR middle-end/24950 * expmed.c (store_bit_field): Don't attempt to insv a field larger than the reg. 2005-11-22 Alan Modra PR target/24954 * config/rs6000/predicated.md (easy_vector_constant_add_self): Use explicit sign extension, not a (char) cast. 2005-11-22 Ben Elliston * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT. * config/i386/i386.c: Likewise. * config/rs6000/xcoff.h: Likewise. * config/rs6000/linux64.h: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rs6000/rs6000.h: Likewise. * config/rs6000/predicates.md: Likewise. * config/rs6000/sysv4.h: Likewise. 2005-11-21 Kaveh R. Ghazi * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when flag_pic is set. * config/alpha/freebsd.h, config/alpha/linux.h, config/arm/linux-elf.h, config/bfin/bfin.h, config/cris/linux.h, config/darwin.h, config/freebsd-spec.h, config/i386/beos-elf.h, config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h, config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h, config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h, config/rs6000/linux64.h, config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h, config/sh/linux.h, config/sh/sh.h, config/sol2.h, config/sparc/linux.h, config/sparc/linux64.h, config/xtensa/xtensa.h: Don't define __pic__ or __PIC__. * doc/invoke.texi: Document that the macros __pic__ and __PIC__ are both defined when either flag -fpic or -fPIC are used. 2005-11-22 Joseph S. Myers * config/fp-bit.c (clzusi): New function. (si_to_float, usi_to_float): Use it to compute proper shift. (usi_to_float): Preserve guard bits when shifting right. * libgcc-std.ver (GCC_4.2.0): New version. * libgcc2.c (__floatundixf, __floatunditf, __floatundidf, __floatundisf): New functions. * libgcc2.h (__floatundixf, __floatunditf, __floatundidf, __floatundisf): Declare. * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf, _floatundixf, and _floatunditf. * optabs.c (expand_float): If target does not define a pattern for signed or unsigned conversion, use an unsigned libcall instead of a signed one. (init_optabs): Initialize ufloat_optab. 2005-11-22 Joseph S. Myers * config/rs6000/rs6000.opt (mmulhw): New option. * doc/invoke.texi (-mmulhw): Document. * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw for 405 and 440. * config/rs6000/rs6000.md: Add half-word multiply and multiply-accumulate instructions for 405 and 440. 2005-11-21 Joel Sherrill * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC which matches behavior of gcc 4.0 and older for RTEMS targets. The default now includes a linker group which makes the RTEMS one nest. 2005-11-22 Ben Elliston * cse.c (fold_rtx): Typo fix. (find_comparison_args): Pass the mode of arg1, not arg1 itself. 2005-11-21 Richard Henderson * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h, langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch. * c-tree.h (lookup_name): Move declaration ... * c-common.h (lookup_name): ... here. * config/darwin-c.c: Include c-common.h. * config/t-darwin: Update dependencies. 2005-11-22 Ben Elliston * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT. * genopinit.c (gen_insn): Likewise. * reload.c (find_equiv_reg): Likewise. * loop.c (load_mems): Likewise. * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise. * cse.c (find_comparison_args, fold_rtx): Likewise. * dwarf2out.c (add_const_value_attribute): Likewise. * expr.c (convert_move): Likewise. * recog.c (general_operand, register_operand): Likewise. * reg-stack.c (replace_reg): Likewise. * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. * c-common.c (handle_vector_size_attribute): Likewise. * simplify-rtx.c (simplify_const_unary_operation): Likewise. (simplify_binary_operation_1): Likewise. (simplify_const_binary_operation): Likewise. (simplify_relational_operation): Likewise. (simplify_const_relational_operation): Likewise. (simplify_immed_subreg): Likewise. * emit-rtl.c (gen_lowpart_common): Likewise. * expmed.c (expand_mult): Likewise. * stor-layout.c (layout_type): Likewise. 2005-11-21 Paolo Bonzini PR target/24951 * config/rs6000/rs6000.c (output_vec_const_move): Load cst and cst2 only for SPE vectors. 2005-11-21 David Edelsohn PR target/24953 * config/rs6000/predicates.md (vrsave_operation): Check UNSPEC_VOLATILE value. 2005-11-21 Jan Hubicka PR tree-optimization/24653 * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions. 2005-11-21 Uros Bizjak * config/i386/predicates.md (ax_reg_operand): New predicate. (memory_displacement_only_operand): New predicate. * config/i386/i386.md ("modrm" attribute): Return 0 if one operand is AX register and the other operand is memory operand with displacement only. 2005-11-21 Uros Bizjak * fold-const.c (fold_binary) : Optimize A / A to 1.0 if we don't care about NaNs or Infinities. 2005-11-20 Ian Lance Taylor PR rtl-optimization/24883 * combine.c (combinable_i3pat): When checking whether the destination of i3 is used in i3, consider paradoxical subregs. 2005-11-21 Kazu Hirata PR middle-end/20583 * cse.c (cse_insn): Reject invalid forms of CONST earlier. 2005-11-20 Joseph S. Myers * combine.c (try_combine): Do not run subst on i1src and i2src in the case of generating a PARALLEL for a comparison. 2005-11-20 Richard Henderson PR 24931 * tree-sra.c (struct sra_elt): Add all_no_warning. (struct sra_walk_fns) : Add use_all argument. (sra_walk_expr): Pass it. (sra_walk_modify_expr): Likewise. (scalarize_ldst): Likewise. (scan_use): Update for new argument. (mark_no_warning): New. (scalarize_use): Use it. 2005-11-20 Bernd Schmidt * expr.c (expand_expr_real): Use usmul_optab for widening signed * unsigned multiplies. * genopinit.c (optabs): Add usmul_widen_optab. * optabs.c (init_optabs): Likewise. * optabs.h (enum optab_index): Add OTI_usmul_widen. (usmul_widen_optab): Define. * config/bfin/bfin.md (usmulhisi3): New pattern. * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document. 2005-11-20 Graham Stott * gensupport.c (std_preds): Fixed extraneous `false` in last change. 2005-11-20 Andreas Schwab PR target/24757 * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp insn. 2005-11-19 Richard Henderson PR tree-opt/24665 * tree-gimple.c (is_gimple_id): Export. * tree-gimple.h (is_gimple_id): Declare. * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New. (get_default_value): Use it. (maybe_fold_stmt_indirect): Likewise. 2005-11-19 James A. Morrison * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less than VR1 or vice-versa. 2005-11-19 Hans-Peter Nilsson PR middle-end/24912 PR middle-end/24750 * reload.c (find_reloads_address_1): Mention dependency on gen_reload. * reload1.c (gen_reload): For IN with an unary operation, try moving inner expression to OUT if trivial SET is not valid. Confirm that the result is valid. Move common code block into... (emit_insn_if_valid_for_reload): New function. 2005-11-19 Richard Guenther * fold-const.c (fold_indirect_ref_1): Make sure we fold ARRAY_REFs of constant strings. 2005-11-19 Jakub Jelinek * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in fatal format string. 2005-11-19 Joseph S. Myers * combine.c (make_compound_operation): Swap operands of commutative operation if necessary before returning. 2005-11-19 Richard Guenther PR middle-end/23294 * fold-const.c (fold_plusminus_mult_expr): New function. (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR cases, remove now unnecessary code. 2005-11-19 Paolo Bonzini * gensupport.c (old_preds): Rename to std_preds, add special field. (struct old_pred_table): Rename to struct std_pred_table, add special field. (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS. (NUM_OLD_SPECIAL_MODE_PREDS): Remove. (init_predicate_table): Adjust, and set along the way whether a predicate is special. 2005-11-18 Mark Mitchell * BASE-VER: Change to 4.2.0. 2005-11-18 James E Wilson * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before returning it. 2005-11-18 Mike Stump * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name. * config/darwin-c.c (darwin_pragma_unused): Likewise. * c-decl.c (lookup_name_two) Remove. * c-tree.h (lookup_name_two): Remove. * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add. * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add. (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME. * langhooks.h (lang_hooks_for_decls): Add lookup_name. 2005-11-18 Richard Earnshaw PR target/24914 * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok when not generating code to use that co-processor. 2005-11-18 James A. Morrison * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node, add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that these functions are now in tree-phinodes.c. 2005-11-18 Jie Zhang * config/bfin/bfin.md (trap): New pattern. 2005-11-18 Richard Kenner * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds on types. * expr.c (expand_expr_real): Don't call record_block_change unless ib_boundaries_block is non-null * postreload.c (reload_cse_move2add): Don't try to work with BImode. * fold-const.c (build_range_check): Use proper type for subtraction when merging lower bound. 2005-11-18 Zdenek Dvorak PR rtl-optimization/24497 * loop-unroll.c (apply_opt_in_copies): Do not verify equality of the copied insn. 2005-11-18 Zdenek Dvorak * tree-scalar-evolution.c (expression_expensive_p): New function. (scev_const_prop): Use compute_overall_effect_of_inner_loop. 2005-11-18 Bernd Schmidt * config/bfin/crtlibid.s: New file. 2005-11-17 John David Anglin PR target/24348 * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config when not using sjlj exceptions. * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links. * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define. * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column. * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define. * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines. * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete. (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New defines. * config/pa/hpux-unwind.h: New file. 2005-11-17 Alexandre Oliva * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define. * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument. * varasm.c (do_assemble_alias): Adjust call. (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL is defined. * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it. 2005-11-17 James E Wilson * tree.def (FUNCTION_DECL): Correct typo in comment. 2005-11-17 Richard Henderson * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int. (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf. (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values. (dbx_reg_number): Don't assert particular registers here. (based_loc_descr): ... do it here instead. Fold in ... (eliminate_reg_to_offset): ... this function. (compute_frame_pointer_to_cfa_displacement): Fold in the effects of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET. * unwind-dw2.c (execute_cfa_program): Apply data align factor to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf. * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET. (instantiate_virtual_regs): Likewise. * var-tracking.c (adjust_stack_reference): Likewise. * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New. 2005-11-17 Bernd Schmidt * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s" * config/bfin/uclinux.h (STARFILE_SPEC): Likewise. * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add crtlibid.o. ($(T)crtlibid.o): New rule. 2005-11-16 Richard Guenther PR middle-end/24851 * fold-const.c (extract_array_ref): Return byte offset in all cases. (fold_binary): Fold &x[a] CMP &x[b] to a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow behavior. 2005-11-16 Richard Henderson PR middle-end/23497 * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary parts of an SSA_NAME. 2005-11-16 Richard Earnshaw PR target/24861 * arm.md (split for movsf with immediate): Restrict split to insns that set a general register. 2005-11-16 Daniel Jacobowitz * config/ia64/unwind-ia64.c (uw_advance_context): New. Call uw_update_context. * unwind-dw2.c (uw_advance_context): Likewise. * unwind-sjlj.c (uw_advance_context): Likewise. Also call _Unwind_SjLj_Unregister. * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context. 2005-11-16 Daniel Jacobowitz * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case. 2005-11-16 Eric Botcazou * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode langhook to get a DImode integer type. 2005-11-16 Richard Henderson J"orn Rennecke Ulrich Weigand PR rtl-opt/24160 PR target/24621 * reload1.c (reg_equiv_invariant): New. (reload): Allocate, initialize, and free it. (calculate_needs_all_insns): Check it when skipping equivalence setting insns. (alter_reg): Likewise. (eliminate_regs_1): Rename from eliminate_regs. Add new may_use_invariant argument; only use reg_equiv_invariant when true. (eliminate_regs): New. (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in a context for which may_use_invariant may be true. 2005-11-16 Eric Botcazou * fold-const.c (const_binop): Don't constant fold the operation if the result has overflowed and flag_trapping_math. * simplify-rtx.c (simplify_const_binary_operation): Likewise. 2005-11-16 Daniel Jacobowitz * config/arm/unwind-arm.c (abort): Add prototype here. (UCB_FORCED_STOP_ARG): Correct typo in macro argument. (struct phase1_vrs): Add prev_sp. (unwind_phase2_forced): Save the original core registers instead of modifying entry_vrs. Take a new flag argument for resuming unwinding and set action flags accordingly. Always set _US_END_OF_STACK when get_eit_entry fails. Unwind before calling the stop function. (_Unwind_GetCFA): New function. (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced. (__gnu_Unwind_Resume_or_Rethrow): Likewise. (__gnu_Unwind_Resume): Do not unwind here for forced unwinding; just call unwind_phase2_forced. (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here. * config/arm/unwind-arm.h (abort): Remove prototype. (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to prototypes. (_Unwind_GetCFA): New prototype. * config/arm/pr-support.c (abort): Add prototype here. * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle forced unwinding. * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do not schedule the prologue with non-call exceptions and EABI. 2005-11-16 Nathan Sidwell * config/arm/unwind-arm.h: Reorder interface function declarations. (_URC_END_OF_STACK): New enumeration value. (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise. (struct _Unwind_Control_Block): Document reserved field use. (_Unwind_Stop_Fn): New typedef. (_Unwind_ForcedUnwind): Declare. (_Unwind_Resume_or_Rethrow): Declare. * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs argument. Adjust. (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New. * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN) (UCB_FORCED_STOP_ARG): New. (search_EIT_table): Update boundary condition checks. (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind. (unwind_phase2): Replace for with do..while. (unwind_phase2_forced): New. (__gnu_Unwind_RaiseException): Replace for with do..while. (__gnu_Unwind_ForcedUnwind): New. (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding. Use appropriate phase2 unwinder. (__gnu_Unwind_Resume_or_Rethrow): New. (__gnu_unwind_pr_common): Cope with forced unwinding. 2005-11-16 David Edelsohn PR target/24772 * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC. * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2, roundsf2): Remove "s" from mnemonic. 2005-11-16 Bernd Schmidt * config/bfin/crti.s (__init, __fini): Use appropriate prologue if __PIC__ is defined. * config/bfin/crtn.s: Change epilogues to match. * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define. * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define __PIC__ and __pic__. 2005-11-16 Tobias Schl"uter PR 24357 * doc/invoke.texi: Distinguish between free and fixed form instead of Fortran and Fortran 90/95. Remove ratfor from the list of supported languages. * gcc.c (default_compilers): Remove double entries, add entries for suffixes '.F90' and '.F95'. 2005-11-16 Eric Botcazou * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug in the stack probing loop. 2005-11-15 David Edelsohn * configure.ac: Use .machine power5 not power5x. * configure: Regenerate. 2005-11-15 Mike Stump * c-decl.c (lookup_name_two): Add. * c-tree.h (lookup_name_two): Likewise. * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead. * config/darwin-c.c (darwin_pragma_unused): Likewise. 2005-11-16 Alan Modra PR rtl-optimization/23392 * regrename.c (enum scan_actions) Add mark_access. (scan_actions_name): Ditto. (scan_rtx_reg): Handle mark_access. (scan_rtx_address): Do nothing for mark_access. (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR and regs in REG_INC notes before closing chains for dead regs. Mark destination regs in REG_FRAME_RELATED_EXPR notes after opening chains for new writes. 2005-11-15 David Edelsohn * c.opt (ffixed-line-length-none): New. 2005-11-15 Steve Ellcey * mklibgcc.in: Change contents of eh_dummy.c. 2005-11-15 Daniel Jacobowitz * loop.c (scan_loop): Do not insert temporaries for hard registers. 2005-11-15 Daniel Jacobowitz * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead of making syscalls. * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also. 2005-11-15 Jan Hubicka * invoke.texi (large-unit-insns): Document. * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param. * params.def (large-unit-insns): New param. 2005-11-15 Hans-Peter Nilsson PR target/24869 * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match special register for operand 3. Reindent constraints to align them vertically. 2005-11-14 David Edelsohn * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf, -mpopcntb, -mfprnd. Add -mcpu=power5+. * configure.ac: Add test for FP rounding instructions. * configure: Regenerate. * config.in: Regenerate. * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if features enabled. * config/rs6000/rs6000.opt (mfprnd): New. * config/rs6000/rs6000.c (processor_target_table): Add power5+. (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND. * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+. * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+. (TARGET_FPRND): New. * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP, UNSPEC_FRIZ): New. (btrunc2): New. (ceil2): New. (floor2): New. (round2): New. 2005-11-14 Geoffrey Keating * gcc.c (version_compare_spec_function): Use fatal() rather than abort(). * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New. (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2). * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2) as empty. * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly link in crt2.o. * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending on -mmacosx-version-min setting. 2005-11-14 Diego Novillo PR 24840 * tree-vrp.c (infer_value_range): Return false if STMT is a block terminator and its basic block has no successors. 2005-11-14 Mike Stump * config/i386/i386.c (override_options): -masm=intel isn't supported on darwin. * doc/invoke.texi (i386 and x86-64 Options): Likewise. 2005-11-15 Joseph S. Myers * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and vfork after including auto-host.h. 2005-11-15 Alan Modra PR rtl-optimization/22002 * combine.c (distribute_notes): Detect cases where a reg dies two or more times in a bb, including on the insn we are combining, and place the death note on the correct range. 2005-11-14 Dale Johannesen * expmed.c (store_bit_field): Add offset unconditionally for memory targets. (extract_bit_field): Don't force extzv or extv operand into a register if field is too big. 2005-11-14 Daniel Jacobowitz * config/arm/arm.c (pic_labelno): New. (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a LABEL_REF. Pass only the labelno to PIC insns. (arm_call_tls_get_addr, legitimize_tls_address): Likewise. (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL. * arm.md (UNSPEC_PIC_LABEL): New constant. (pic_add_dot_plus_four, pic_add_dot_plus_eight) (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF. Use the correct label prefix. 2005-11-14 Daniel Jacobowitz * config/arm/arm.c (legitimize_tls_address): Use correct rtx for REQ_EQUIV note. 2005-11-14 Richard Earnshaw * loop-invariant.c: Include tm_p.h. * Makefile.in: Updated. 2005-11-13 John David Anglin * pa.c (store_reg): Revise generation of frame notes in large frames. (set_reg_plus_d): Likewise. 2005-11-13 Andrew MacLeod PR tree-optimization/24709 * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite loop check. 2005-11-13 Eric Botcazou * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype and duplicate declaration of pthread_self. 2005-11-13 Eric Botcazou Ian Lance Taylor PR middle-end/24003 * calls.c (expand_call): If TARGET is a MEM and some part of the argument area has been saved, force TARGET to a register. 2005-11-13 Razya Ladelsky * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type checking. 2005-11-13 Jason Merrill PR c++/22489 * dwarf2out.c (gen_subprogram_die): Force a declaration die for lazily declared methods. (force_decl_die): Stop if forcing out the context already make a DIE for the decl. (force_type_die): Likewise. 2005-11-13 Andrew Pinski PR middle-end/24820 * builtins.c (integer_valued_real_p): Add break in REAL_CST having TREE_OVERFLOW set. 2005-11-13 Zdenek Dvorak * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting addressing modes during calculation of costs. 2005-11-12 Eric Botcazou * function.c (assign_stack_local_1): Restrict sanity check on frame size overflow to 32-bit and above platforms. 2005-11-12 Hans-Peter Nilsson * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define. * config/cris/cris.c: Include reload.h. (cris_initial_elimination_offset): New function. * config/cris/cris-protos.h: (cris_initial_elimination_offset): Prototype. 2005-11-12 Richard Guenther * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table. 2005-11-12 Jan Hubicka * expr.c (expand_expr_real_1): : Canonicalize to compare against 0 when possible. 2005-11-12 Jie Zhang * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES, HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers. * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers in the new order. 2005-11-12 Hans-Peter Nilsson * recog.c (constrain_operands) : For a match, require that a non-register matches general_operand when strict >= 0. 2005-11-11 Steven Bosscher * loop-invariant.c (move_loop_invariants): Fix a thinko in the previous checkin. 2005-11-11 Daniel Jacobowitz * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same) (memory_address_same): New. (dse_optimize_stmt): Call memory_address_same. 2005-11-12 Hans-Peter Nilsson PR middle-end/24750 * reload.c (find_reloads_address_1) : New cases. 2005-11-11 Daniel Jacobowitz * longlong.h (__clz_tab): Always provide. 2005-11-11 Steven Bosscher PR 24265 * loop-invariant.c (may_assign_reg_p): Make sure a hard register can be assigned to. (find_invariant_insn): Do the cheapest check, may_assign_reg_p, before check_maybe_invariant. (move_invariant_reg): Use gen_move_insn instead of replacing SET_DEST with the temporary for the invariant. (move_loop_invariants): If checking is enabled, do internal consistency checks after completing the pass. 2005-11-11 David Edelsohn PR 24644 * common.opt (Wvolatile-register-var): New. * varasm.c (make_decl_rtl): Only emit warning when option specified. Clarify warning message. * doc/invoke.texi (Wvolatile-register-var): Document new option. * doc/md.texi (copysign): Document standard named pattern. 2005-11-11 Jie Zhang * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing bytes when align is 2. * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed by the first instruction of the loop. 2005-11-11 Jason Merrill PR c++/24686 * gimplify.c (gimplify_cleanup_point_expr): Also save and restore the cleanup list. 2005-11-11 Zdenek Dvorak PR rtl-optimization/22509 * local-alloc.c (memref_used_between_p): Check whether a function call could not reference the memref. 2005-11-11 Ulrich Weigand * postreload.c (reload_cse_simplify_operands): Fix bug in sorting algorithm so as to choose the best, not the worst, alternative. Reset accumulated register class before processing next alternative. 2005-11-11 Kaz Kojima PR target/24445 * calls.c (expand_call): Copy a return value to a plain register if needed. 2005-11-10 Alexandre Oliva PR target/24778 * varasm.c (assemble_name): Recompute name only for transparent aliases. 2005-11-10 Hans-Peter Nilsson * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from. 2005-11-04 Jeff Law PR middle-end/23181 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not perform reassociation if the parent statement will not die as a result of the optimization. 2005-11-10 Daniel Berlin * tree-ssa-alias.c (compute_may_aliases): Remove call to delete_old_heap_vars. * tree-dfa.c (referenced_var_remove): Remove function. * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars. (delete_tree_ssa): Remove call to delete_old_heapvars. Add call to delete_alias_heapvars. * tree-flow.h (referenced_var_remove): Remove prototype (init_alias_heapvars): New prototype. (delete_alias_heapvars): Ditto. * Makefile.in (tree-ssa-structalias.o): Add gt-tree-ssa-structalias.o (GTFILES): Add tree-ssa-structalias.h and tree-ssa-structalias.c. (s-gtype): Add gt-tree-ssa-structalias.h. * tree-ssa-structalias.c (heapvars): Remove. (oldheapvars): Remove. (heapvar_for_stmt): New variable. (heapvar_lookup): New function. (heapvar_insert): Ditto. (get_constraint_for): See if we have an old heapvar to reuse. (init_alias_heapvars): New function. (delete_alias_heapvars): Ditto. Add include of gt-tree-ssa-structalias.h. 2005-11-10 Eric Botcazou PR middle-end/22127 * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext. 2005-11-10 Eric Botcazou * tree.c (int_fits_type_p): Only look at the base type if it has the same precision as the original type. 2005-11-10 Jakub Jelinek PR other/4372 * varasm.c (assemble_alias): Use %q+D in the error message instead of %J and %qD. 2005-11-10 Richard Guenther * gcse.c (free_ldst_entry): Only free hashtable if it exists. 2005-11-09 Eric Botcazou * function.c (assign_stack_local_1): Issue an error message if the frame size overflows in the signed target arithmetics. 2005-11-09 Eric Botcazou * tree.c (build_qualified_type): Chain the new type to the original type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is a POINTER_TYPE or a REFERENCE_TYPE respectively. (build_pointer_type_for_mode): Only return unqualified types. (build_reference_type_for_mode): Likewise. 2005-11-09 Jakub Jelinek * Makefile.in (gnucompare): Do comparison of all files using one of the chosen methods and only afterwards decide if just warning should be issued or comparison failure raised. 2005-11-09 Eric Botcazou * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn. (noce_try_abs): Negate if the comparison is reversed. Look only one instruction backwards for a REG_EQUAL note. 2005-11-09 Alexandre Oliva PR other/4372 * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-tpf.h: Define __gthrw. For all identifiers that might be weak, introduce weakrefs or non-weak aliases with __gthrw, and prefix all uses with __ghtrw. 2005-11-09 Alexandre Oliva PR other/4372 * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New. (TREE_DEPRECATED): Adjust comment. Check for a DECL. * c-common.c (handle_weakref_attribute): New. (c_common_attribute_table): Add weakref. * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support in the assembler. * configure, config.in: Rebuilt. * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF. * doc/extend.texi: Document weakref attribute. * varasm.c (ultimate_transparent_alias_target): New (assemble_name): Use it. (weak_finish_1): Split out of... (weak_finish): ... and deal with weakrefs in... (weakref_targets): ... new list. (globalize_decl): Clean up weakref_targets. (do_assemble_alias): Handle weakrefs. (finish_aliases_1): Do not reject weakrefs to external symbols. (assemble_alias): Handle weakrefs. 2005-11-09 Richard Guenther PR tree-optimization/24716 * tree-scalar-evolution.c (analyze_evolution_in_loop): Use t_bool to track results from follow_ssa_edge. 2005-11-09 Eric Botcazou * final.c (force_source_line): New global variable. (final_scan_insn): Set it to true instead of clearing last_filename. (notice_source_line): Return true if force_source_line is true, unless source info is absent. 2005-11-09 Andrew Pinski PR c/24644 * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add a linkage name for a variable if it a register variable. * c-decl.c (grokdeclarator): Global register variables should be set as PUBLIC. 2005-11-09 Andreas Krebbel PR 24624 * config/s390/s390.c (struct s390_frame_layout): New fields first_save_gpr_slot and last_save_gpr_slot. (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue, s390_emit_epilogue, s390_initial_elimination_offset): Replaced first_save_gpr and last_save_gpr with the _slot variants. (s390_register_info): Calculate first_save_gpr_slot and last_save_gpr_slot using regs_ever_live. 2005-11-09 Andreas Krebbel PR 24623 * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs for a function containing a landing pad. 2005-11-09 Andreas Krebbel PR 24034 * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register is live afterwards. 2005-11-08 Bernd Schmidt * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS, MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New. 2005-11-09 Nathan Sidwell Add ms2 support * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New constants. (call,load,store): New insn types. (mem_access, branch_access): Adjust reservation conditions. (define_delay): Adjust condition. (decrement_and_branch_until_zero): Allow for ms2. Set branch type. (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2. (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store insn type. (call_internal, call_value_internal, return_internal, return_interrupt_internal, eh_return_internal, indirect_jump, tablejump): Set call insn type. (blockage, ei, di): Use appropriate unspec const. * config/ms1/ms1.c (ms1_flag_delayed_branch): New. (ms1_get_attr_type): Adjust to give load & store types. (ms1_final_prescan_insn): Adjust for new insn types. Don't look backwards past a barrier. (ms1_override_options): Accept ms2 arch. Copy and reset delayed branch scheduling. (struct branch_info, struct label_info): New. (ms1_labels): New. (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New. (ms1_machine_reorg): New. (TARGET_MACHINE_DEPENDENT_REORG): Override. * config/ms1/crtn.asm: Add nop for ms2 JAL hazard. * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2. (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2. (TARGET_MS2): New. 2005-11-09 Per Bothner Uros Bizjak PR c/24101 * toplev.c (process_options): Initialize debug_hooks early in case lang_hooks.post_options ends up calling a debug_hook. 2005-11-08 Jakub Jelinek * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume DBX_REGISTER_NUMBER being contiguous. 2005-11-08 James A. Morrison Diego Novillo PR 23046 * tree-vrp.c (register_edge_assert_for): Do not register always-false predicates. 2005-11-08 Devang Patel PR tree-optimization/23115 * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by relation. 2005-11-08 Joseph S. Myers * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=440. 2005-11-08 Daniel Berlin Fix PR tree-optimization/23382 * tree-ssa-alias.c (compute_may_aliases): Call delete_old_heap_vars. * tree-dfa.c (referenced_var_remove): New function. * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars. * tree-flow.h (referenced_var_remove): Add prototype. (delete_old_heap_vars): Ditto. * tree-ssa-structalias.c (heapvars): New variable. (oldheapvars): Ditto. (get_constraint_for): Put heap vars on heapvars list. (delete_old_heap_vars): New function. 2005-11-08 Jason Merrill * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK. 2005-11-08 Uros Bizjak PR target/19340 * reg-stack.c (reg_to_stack): Update register liveness also for flag_sched2_use_traces. 2005-11-08 Alan Modra PR target/23704 * config/rs6000/rs6000.c (rs6000_handle_option ): Don't override prior explicit -mno-powerpc-gfxopt. 2005-11-07 Eric Botcazou * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns if the bitsize is zero. * doc/md.texi (Standard Pattern Names): Document it. * config/ia64/ia64.c (ia64_pass_by_reference): Delete. (TARGET_PASS_BY_REFERENCE): Likewise. 2005-11-07 Ian Lance Taylor PR rtl-optimization/24683 * config/i386/i386.c (legitimize_pic_address): If constant operand to PLUS is too large, put it in a register. 2005-11-07 Jie Zhang * configure.ac: Enable checking assembler dwarf2 support for bfin target. * configure: Regenerate. 2005-11-07 Paolo Bonzini PR target/24230 * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same, gen_easy_vector_constant_add_self): Delete. (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant): New. (output_vec_const_move): Use gen_easy_altivec_constant. (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE. * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests. (easy_vector_constant_add_self): Rewritten. * config/rs6000/rs6000-protos.h (easy_vector_splat_const, easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype. (easy_altivec_constant, gen_easy_altivec_constant): Add prototype. * config/rs6000/altivec.md (easy_vector_constant_add_self splitters): Macroize and adjust for the other changes. 2005-11-07 Paolo Bonzini PR c/24599 * c-typeck.c (build_c_cast): Try using a shared constant, and see if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed. 2005-11-07 Jakub Jelinek PR rtl-optimization/23567 * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function. (noce_process_if_block): Don't do any optimizations except if (cond) x = x; if !set_b and write into orig_x may trap or fault. Remove the MEM_READONLY_P check. 2005-11-06 Diego Novillo PR 24670 * tree-vrp.c (fix_equivalence_set): New. (extract_range_from_assert): Call it. 2005-11-05 Ian Lance Taylor PR target/22432 * combine.c (apply_distributive_law): Don't distribute across a vector mode subreg. 2005-11-05 Kazu Hirata * c-typeck.c, config/i386/netware.h, config/m32c/cond.md, config/ms1/ms1.h, config/rs6000/predicates.md, config/s390/s390.c, params.def, postreload-gcse.c, tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c, tree-vrp.c, tree.c: Fix comment typos. * doc/invoke.texi: Fix typos. 2005-11-05 Sebastian Pop * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS for testing whether the data_dependence_relation contains distance vectors. Iterate over all distance vectors of the ddr. * lambda.h: Define a vec of lambda_vector pointers. * tree-data-ref.c (dump_data_dependence_relation, dump_data_dependence_direction): Iterate over all distance and direction vectors of the ddr. (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and DDR_DIST_VECTS. (build_classic_dist_vector, build_classic_dir_vector): Push a set of distance/direction vectors instead of a single one. * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist lambda_vectors with a vec of lambda_vectors. (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec. (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS, DDR_NUM_DIST_VECTS): New. * tree-loop-linear.c (gather_interchange_stats): Test for the existence of distance vectors only after having checked that there is a dependence. Iterate over all distance vectors of the ddr. (linear_transform_loops): Use dump_data_dependence_relation. * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for distance vectors using DDR_NUM_DIST_VECTS. Iterate over all the distance vectors of the ddr. 2005-11-05 Bernd Schmidt * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save, expand_prologue_reg_save, expand_epilogue_reg_restore): New argument IS_INTHANDLER; all callers changed. (n_regs_saved_by_prologue): Take interrupt handler attributes into account. (do_link, do_unlink): New argument ALL; all callers changed. (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue): If function isn't leaf, save and restore all registers. (bfin_function_ok_for_sibcall): Only true if not an interrupt or exception handler. 2005-11-05 Jan Hubicka PR rtl-optimization/23490 * doc/invoke.texi (max-predicted-iterations, max-cse-insns, max-flow-memory-location): Document. * flow.c: Include params.h (MAX_MEM_SET_LIST_LEN): Kill. (add_to_mem_set_list): Use new param. * cse.c (cse_basic_block): Replace 1000 by new param. * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS, PARAM_MAX_FLOW_MEMORY_LOCATIONS): New. * predict.c (predict_loops): Use new param. * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove. * ipa-inline.c (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining, cgraph_decide_inlining_incrementally): Do not hold memory returned by cgraph_node_name across other call. 2005-11-04 Hans-Peter Nilsson PR target/23424 * config/cris/predicates.md ("cris_bdap_sign_extend_operand"): Disable. 2005-11-04 Jeff Law PR/21883 * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM. * tree-ssa-dom.c: Include params.h. (thread_across_edge): If there are too many statements in the target block, then do not thread through it. * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H). * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM. 2005-11-03 Diego Novillo PR 24627 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use TODO_update_ssa instead of TODO_update_ssa_no_phi. 2005-11-04 Sebastian Pop PR/18595 * tree-scalar-evolution.c (instantiate_parameters_1, instantiate_parameters, resolve_mixers): Compute the size of an expression to be instantiated and give up the instantiation if the size exceeds PARAM_SCEV_MAX_EXPR_SIZE. 2005-11-04 Richard Guenther * tree-flow.h (ref_contains_indirect_ref): Rename to array_ref_contains_indirect_ref. * tree-flow-inline.h (ref_contains_indirect_ref): Likewise. (array_ref_contains_indirect_ref): Make comment match the code and vice-versa. (ref_contains_array_ref): Likewise. * tree-ssa-structalias.c (find_func_aliases): Remove call to ref_contains_indirect_ref. * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Rename calls to ref_contains_indirect_ref. 2005-11-04 Paul Brook * config/arm/arm.c (arm_load_pic_register): Pass extra reg to gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight. (arm_call_tls_get_addr, legitimize_tls_address): Likewise. * config/arm/arm.md: Use match_operand in peephole input templates and match_dup in peephole output templates. 2005-11-04 Daniel Jacobowitz * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and __aeabi_uidiv. 2005-11-04 Mark Mitchell Daniel Jacobowitz * longlong.h (add_ssaaaa): Clobber condition code register in ARM version. (sub_ddmmss): Likewise. (umul_ppmm): Likewise. 2005-11-04 Daniel Jacobowitz Paul Brook Phil Blundell * configure.ac: Add test for ARM TLS support. * configure: Regenerated. * config/arm/arm-protos.h (legitimize_tls_address) (arm_tls_referenced_p, tls_mentioned_p) (arm_output_addr_const_extra): New prototypes. (thumb_legitimize_pic_address): Delete. * config/arm/arm.c: Include "gt-arm.h". (enum tls_reloc): New. (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand) (pcrel_constant_p, get_tls_get_addr, arm_load_tp) (arm_call_tls_get_addr, legitimize_tls_address) (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p) (arm_init_tls_builtins, arm_emit_tls_decoration) (arm_output_addr_const_extra): New functions. (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM) (TARGET_HAVE_TLS): Define. (target_thread_pointer): New. (arm_override_options): Handle -mtp=. (legitimize_pic_address): Ignore UNSPECs. (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC relative symbols. (arm_legitimize_address, thumb_legitimize_address): Handle TLS. (tls_get_addr_libfunc): New variable. (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS. (arm_init_builtins): Call arm_init_tls_builtins. (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER. (arm_encode_section_info): Call default_encode_section_info. * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define. (enum arm_tp_type): New. (target_thread_pointer): Add declaration. (LEGITIMATE_CONSTANT_P): Handle TLS. (LEGITIMATE_PIC_OPERAND_P): Handle TLS. (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra. (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER. * config/arm/arm.md: Add UNSPEC_TLS. (movsi): Handle TLS. (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for non-PIC. (tls_load_dot_plus_eight): New insn and a peephole to create it. (load_tp_hard, load_tp_soft): New insns. * arm.opt: Add -mtp=. * doc/invoke.texi (ARM Options): Document -mtp. 2005-11-04 Daniel Jacobowitz * config/arm/lib1funcs.asm: Don't include "libunwind.S". * config/arm/libunwind.S: Include "lib1funcs.asm". * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind. (LIB2ADDEH): Add libunwind.S. (LIB2ADDEHDEP): Add lib1funcs.asm. * mklibgcc.in: Handle asm files in libgcc_eh.a. 2005-11-04 Francois-Xavier Coudert PR fortran/18452 * gcc/c.opt: Add a -lang-fortran option. * gcc/c-opts.c: Add a lang_fortran flag. (c_common_init_options): Handling the -lang-fortran option. (c_common_handle_option): Add a case for Fortran options in preprocessing. Remove cases for -ffixed-form and -ffixed-line-length. Add a case for -lang-fortran. 2005-11-03 David Edelsohn * config/rs6000/rs6000.c: Include params.h (optimization_options): Set max-grow-copy-bb-insns default to 16. (bdesc_2arg): Delete vpkuhss and vpkuwss. * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete. (UNSPEC_VPKUWSS): Delete. (altivec_vpkuhss): Delete. (altivec_vpkuwss): Delete. * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from final condition. (neg_eq0): Remove final condition. (neg_eq): Remove condition and split-condition. 2005-11-04 Alan Modra * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT. Use associated print macros. 2005-11-03 Joseph S. Myers PR c++/17964 * diagnostic.c (diagnostic_set_info_translated): New function. (diagnostic_set_info): Use it. Add comment. * diagnostic.h (diagnostic_set_info_translated): Declare. 2005-11-03 Eric Botcazou * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'. On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect reference only if 'public' is true. (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms, emit the .hidden directive only if the indirect reference is public. (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'. Pass it to dw2_force_const_mem. * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'. * dwarf2out.c (output_cfi): Adjust calls to above function. (output_call_frame_info): Likewise. * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object as 'public' argument to dw2_asm_output_encoded_addr_rtx. 2005-11-03 Zdenek Dvorak PR tree-optimization/24483 * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest field to elts if possible. 2005-11-03 Andrew Pinski PR middle-end/23155 * gimplifier.c (gimplify_expr): Create a temporary for lvalue CONSTRUCTOR. 2005-11-03 Daniel Berlin Fix PR tree-optimization/24351 * tree-ssa-structalias.c (struct variable_info): Add collapsed_into. (get_varinfo_fc): New function to follow collapsing. (new_var_info): Set collapsed_to to NULL. (dump_constraint): Follow collapsing. (build_constraint_graph): Handle collapsing. (do_simple_structure_copy): Return false if something bad happened. (collapse_rest_of_var): New function. (do_structure_copy): Collapse if do_simple_structure_copy returns false. 2005-11-03 Andrew Pinski PR middle-end/24589 * gimplify.c (gimplify_expr) : Add the expressions to a statement list instead of gimplifying them. 2005-11-03 Eric Botcazou PR rtl-optimization/23585 * rtlanal.c (rtx_addr_can_trap_p_1) : Return 0 for an address that can't trap plus a constant integer, if the mode has zero size. 2005-11-03 Ulrich Weigand PR target/24620 * config/s390/s390.md ("*insv_reg_imm"): Accept any CONST_INT as operand 2. ("*insv_reg_extimm"): Likewise. 2005-11-03 Joseph S. Myers PR c/24329 * c-pretty-print.c (pp_c_type_specifier): Do not recurse if c_common_type_for_mode returns an unnamed type. 2005-11-02 Richard Henderson PR target/9350 PR target/24374 * dwarf2out.c (dwarf2out_reg_save_reg): New. (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec. * function.c (assign_parms): Use calls.internal_arg_pointer. (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN code. * target-def.h (TARGET_INTERNAL_ARG_POINTER): New. (TARGET_CALLS): Add it. * target.h (struct gcc_target): Add calls.internal_arg_pointer. * targhooks.c (default_internal_arg_pointer): New. * targhooks.h (default_internal_arg_pointer): Declare. * tree.h (dwarf2out_reg_save_reg): Declare. * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove. * config/i386/i386.c (dbx_register_map): Add return column. (dbx64_register_map, svr4_dbx_register_map): Likewise. (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New. (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New. (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer. (ix86_save_reg): Save force_align_arg_pointer. (ix86_emit_save_regs): Make regno unsigned. (ix86_emit_save_regs_using_mov): Likewise. (ix86_expand_prologue): Handle force_align_arg_pointer. (ix86_expand_epilogue): Likewise. * config/i386/i386.h: (dbx_register_map): Update. (dbx64_register_map, svr4_dbx_register_map): Update. (struct machine_function): Add force_align_arg_pointer. * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New. (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber. (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P. 2005-11-02 Jan Hubicka PR target/23303 * i386.md: Add peep2 for simplyfing array accesses. 2005-11-02 Ulrich Weigand PR target/24615 * config/s390/s390-protos.h (s390_decompose_shift_count): Declare. * config/s390/s390.c (s390_decompose_shift_count): New function. (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count. (print_shift_count_operand): Use s390_decompose_shift_count. * config/s390/predicates.md ("setmem_operand", "shift_count_operand"): Use s390_decompose_shift_count. Do not accept any non-base hard regs. 2005-11-02 Ulrich Weigand PR target/24600 * loop.c (loop_givs_rescan): Use force_operand to expand complex GIVs. 2005-11-02 Andrew Pinski PR 22429 * fold-const.c (build_range_check): Use unsigned when signed overflow is undefined also. If etype is subtype, make sure that the subtraction is in the supertype. 2005-11-02 Richard Henderson PR target/24178 * config/alpha/alpha.c (get_aligned_mem): Honor alignment given by MEM_ALIGN. 2005-11-01 Richard Henderson PR 21518 * loop.c (scan_loop): Do not propagate computations to a hard register destination with SMALL_REGISTER_CLASSES. 2005-11-01 Joseph S. Myers * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra costs for MULT inside PLUS or MINUS. 2005-11-01 Bob Wilson * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding. (TRAMPOLINE_SIZE): Round up to 60. * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise. 2005-10-31 James E. Wilson PR debug/24444 * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO ifdef. Put ifdefs around call in gen_subprogram_die. (compute_frame_pointer_to_cfa_displacement): Likewise. (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is not defined. PR rtl-optimization/17356 * cfgrtl.c (purge_dead_edges): Undo last change. In EDGE_EH code, add check for CALL_INSN if EDGE_ABRNOMAL_CALL true. 2005-10-31 Jan Hubicka PR middle-end/24093 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative PR target/20928 * i386.c (legitimize_pic_address): Deal with large immediates. PR profile/20815 * coverage.c (coverage_checksum_string): Fix code to stip random seeds from symbol names while computing checkup. PR profile/24487 * predict.c (predict_loops): Do not estimate more than MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic. * predict.def (MAX_PRED_LOOP_ITERATIONS): Define. 2005-10-31 Andrew MacLeod PR tree-optimization/19097 * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts. 2005-10-31 J"orn Rennecke * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account. 2005-10-31 Andrew Pinski PR middle-end/23492 * tree-inline.c (setup_one_parameter): If the init_stmt is NULL, don't insert the statement. 2005-10-30 Jan Hubicka PR tree-optimization/24172 * tree-inline.c (copy_body_r): Unshare the substituted value first. 2005-10-30 Hans-Peter Nilsson * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode constants for hosts with long != 32 bits. 2005-10-28 Andreas Krebbel PR middle-end/24093 * ipa-inline.c (craph_decide_recursive_inlining): Fix return value. 2005-10-28 Aldy Hernandez * config/ms1/ms1.h (TARGET_MS1_64_001): New. (TARGET_MS1_16_002): New. (TARGET_MS1_16_003): New. * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite. ("*decrement_and_branch_until_zero_no_clobber"): New. Add corresponding splitter for decrement_and_branch_until_zero instruction. Key all decrement_and_branch_until_zero patterns off of TARGET_MS1_16_003. 2005-10-28 Andrew Pinski PR middle-end/24362 * tree-complex.c (extract_component): Treat RESULT_DECL like the rest of the decls. 2005-10-25 Eric Botcazou * config/ia64/ia64.c (ia64_output_function_profiler): Emit an indirect call to _mcount if the function needs a static chain. 2005-10-25 Eric Botcazou Caroline Tice PR rtl-optimization/24460 * dwarf2out.c (have_switched_text_sections): New boolean variable. (dwarf2out_switch_text_section): Set it to true instead of incrementing separate_line_info_table_in_use. (output_loc_list): Additionally test have_switched_text_sections. (output_ranges): Likewise. (dwarf2out_finish): Likewise. * varasm.c (assemble_start_function): Do not call insert_section_boundary_note. (assemble_end_function): If flag_reorder_blocks_and_partition, switch to the function's section before emitting the .size directive. * bb-reorder.c (insert_section_boundary_note): Staticify. (rest_of_handle_reorder_blocks): Call insert_section_boundary_note. * output.h (insert_section_boundary_note): Delete. 2005-10-24 Andrew Pinski PR c/23103 * c-format.c (check_format_types): Use lang_hooks.types_compatible_p instead of pointer equality when comparing types. 2005-10-24 James E. Wilson * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two add_dependence_list_and_free calls. 2005-10-24 Steven Bosscher * contrib.texi: Add the names of the LLNL folks who donated Cray pointer support for gfortran. 2005-10-24 Steven Bosscher PR tree-optimization/24225 * profile.c (branch_prob): Look from end to start through a basic block when looking for a locus. 2005-10-24 Richard Henderson * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in parallel. (hppa_expand_prologue): Likewise. 2005-10-24 John David Anglin * pa-linux.h (NO_PROFILE_COUNTERS): Delete define. (NO_DEFERRED_PROFILE_COUNTERS): Define. * pa.h (NO_PROFILE_COUNTERS): Define. * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined. (funcdef_nos): New vector to hold label numbers of deferred profile counters. (output_deferred_profile_counters): New function. (hppa_profile_hook): Push label number onto funcdef_nos. (pa_hpux_file_end): Call output_deferred_profile_counters if NO_DEFERRED_PROFILE_COUNTERS is false. * pa-protos.h (get_deferred_plabel): New prototype. * pa.c (get_plabel): Rename to get_deferred_plabel. Return plabel. Make global. (output_call): Adjust calls. 2005-10-24 Alan Modra * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain peculiarity of GOT/TOC section usage. 2005-10-23 Andrew Pinski PR objc/24435 * c-common.c (constant_string_class_name): Add documentation. 2005-10-23 Kaz Kojima PR target/23832 * recog.c (peephole2_optimize): Increment peep2_current_count only when the slot is empty. 2005-10-23 John David Anglin PR ada/23957 * except.c (output_function_exception_table): Call assemble_external_libcall if we need a personality function. 2005-10-21 Eric Botcazou PR rtl-optimization/24460 * bb-reorder.c (fix_crossing_unconditional_branches): Do not set the basic block for barriers. 2005-10-21 Janis Johnson * var-tracking.c (vt_initialize): Initialize post. 2005-10-21 Devang Patel PR/24220 * c-common.c (vector_types_convertible_p): Check vector element type. 2005-10-21 Kaz Kojima * config/sh/sh.c (prepare_move_operands): Handle the address constant which is a tls symbolic address plus a constant. 2005-10-21 Andrew Pinski PR driver/24473 * gcc.c (main): Use the correct counter for erroring out about mulitple files. 2005-10-21 Alan Modra PR target/24465 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always use r2 for 64-bit tls .got access. 2005-10-21 Paolo Bonzini * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and TRUTH_OR_EXPR. 2005-10-20 Steven Bosscher PR tree-optimization/24307 * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR. 2005-10-20 Alexandre Oliva PR middle-end/24295 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark alias targets. * varasm.c (find_decl_and_mark_needed): After cgraph global info is ready, stop marking functions, but still mark variables. 2005-10-20 Richard Guenther PR c++/24439 * fold-const.c (invert_truthvalue): Handle COND_EXPR with void type operands. 2005-10-20 Eric Botcazou PR rtl-optimization/23585 * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from... (rtx_addr_can_trap_p): ... here. Invoke rtx_addr_can_trap_p_1. (may_trap_p_1): New predicate extracted from... (may_trap_p): ... here. Invoke may_trap_p_1. (may_trap_or_fault_p): New predicate. * rtl.h (may_trap_or_fault_p): Declare it. * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p instead of may_trap_p. (steal_delay_list_from_fallthrough): Likewise. (fill_simple_delay_slots): Likewise. (fill_slots_from_thread): Likewise. * function.c (pad_to_arg_alignment): Rework comment about SPARC_STACK_BOUNDARY_HACK. * config/sparc/sparc.h: Likewise. 2005-10-19 Adrian Straetling * config/s390/s390.c (s390_expand_insv): New. * config/s390/s390-protos.h (s390_expand_insv): Declare. * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM". ("icm_hi"): Remove mode attribute. ("*sethigh"): Rewrite to "sethighpart". Adjust all uses. ("*extracthi", "*extractqi"): Remove. (extv", "*extzv"): New. ("insv", "*insv_mem_reg", "*insvdi_mem_reghigh", "*insv_reg_imm", "*insv_reg_extimm"): New. 2005-10-19 Ulrich Weigand * cfgexpand.c (discover_nonconstant_array_refs_r, discover_nonconstant_array_refs): Move here from tree-outof-ssa.c (tree_expand_cfg): Call discover_nonconstant_array_refs. * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to discover_nonconstant_array_refs. 2005-10-19 Steven Bosscher PR c/23228 * c-decl.c (pop_scope): Don't warn about an unused variable if it is marked with TREE_NO_WARNING. (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl somenow mismatch and olddecl is to be replaced. 2005-10-19 Eric Botcazou PR middle-end/23199 * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect whether registers live on the edge can be saved/restored. 2005-10-19 Kaz Kojima * config/sh/sh.c (fixup_mova): Skip notes. 2005-10-19 Ulrich Weigand * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype. * config/s390/s390.c (s390_hard_regno_rename_ok): New function. (s390_can_eliminate): Handle BASE_REGNUM elimination. (s390_initial_elimination_offset): Likewise. (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed register on TARGET_ZARCH targets. * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define (INITIAL_FRAME_POINTER_OFFSET): Remove. (REG_ALLOC_ORDER): Move BASE_REGNUM lower. (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule. 2005-10-19 Andreas Krebbel * config/s390/s390.md: Comment describing output modifiers updated. * config/s390/s390.c (print_operand): Likewise. 2005-10-19 Andreas Krebbel * config/s390/s390.c (override_options): Added check for -mstack-size 64k limitation. * doc/invoke.texi: Mention that limit in the documenation. 2005-10-18 Paolo Bonzini PR #19672 * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here. 2005-10-18 Daniel Berlin Fix PR tree-optimization/24231 * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names (compute_avail): Ditto. 2005-10-18 Richard Henderson PR target/24428 * config/i386/i386.c (legitimate_constant_p): Check SYMBOL_REF_TLS_MODEL directly. Don't fallthru to SYMBOL_REF if LABEL_REF. (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly. (legitimate_pic_address_disp_p): Reorg CONST checking to make sure SYMBOL_REF_TLS_MODEL is tested. Test SYMBOL_REF_TLS_MODEL directly. (print_operand_address): Likewise. * config/i386/predicates.md (x86_64_immediate_operand): Test SYMBOL_REF_TLS_MODEL properly inside CONST. (x86_64_zext_immediate_operand): Likewise. (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand, initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove. * config/i386/i386-protos.h: Remove predicates.md entries. 2005-10-18 Danny Smith * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Check that elements of TYPE_METHODS are FUNCTION_DECLs. 2005-10-17 Alexey Starovoytov Ian Lance Taylor PR middle-end/23522 * fold-const.c (fold_widened_comparison): Do not allow range based constant folding when right operand cannot be unwidened. 2005-10-17 Richard Henderson * builtins.c (expand_builtin_synchronize): Build a new-style asm with a memory clobber. 2005-10-17 James E Wilson PR rtl-optimization/17356 * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before checking for EDGE_EH. 2005-10-17 Eric Botcazou * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align the slot on an even boundary for any type with 16-byte alignment. 2005-10-17 Hans-Peter Nilsson PR target/23424 * md.texi (Modifiers) <%>: Clarify that % doesn't work after register allocation. 2005-10-17 DJ Delorie * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns as frame related. 2005-10-17 Nathan Sidwell PR c++/22551 * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of overflow flags. 2005-10-17 Kaz Kojima * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns to 2 if it's already non-zero. (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions is set and warn about it if flag_schedule_insns is 1. 2005-10-17 Paul Woegerer * config/crx/crx.md: Compare-and-branch instructions need to invalidate CC. 2005-10-17 Uros Bizjak PR target/24315 * config/i386/i386.md (*pushdi2_rex64 splitter) (*movdi_1_rex64 splitter, *ashldi3_1 splitter) (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after flow2 pass only when (optimize > 0 && flag_peephole2). 2005-10-16 Andrew Pinski PR driver/22544 * gcc.c (have_c): New static variable. (have_o): Likewise. (process_command): Remove declation of have_c. Set have_o to 1 when handling -o. (main): Add a fatel error if there are multiple files specified and -o and -c/-S is passed witout -combine or multiple languages. 2005-10-16 Daniel Berlin Fix PR tree-optimization/22444 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Assert that we don't hit something with subvars. (setup_pointers_and_addressables): Don't add things with subvars, because we'll already process the subvars for aliasing purposes. 2005-10-16 Hans-Peter Nilsson PR target/23424 * config/cris/cris.md ("*mov_side", "*mov_sidesisf") ("*mov_side_mem", "*mov_sidesisf_mem", "*clear_side") ("*ext_sideqihi", "*ext_sidesi", "*op_side") ("*op_swap_side", "*extopqihi_side", "*extopsi_side") ("*extopqihi_swap_side", "*extopsi_swap_side"): Have separate, swapped, alternatives for the R constraint. PR middle-end/24341 * builtins.c (get_builtin_sync_mode): Make unlimited mode_for_size request. 2005-10-15 Richard Henderson * gimplify.c (gimplify_var_or_parm_decl): Split out from ... (gimplify_expr): ... here. (gimplify_compound_lval): Use it in initial scan loop. Allow fb_lvalue in base expression. 2005-10-15 Richard Henderson PR 23714 * builtins.c (expand_builtin_trap): Export. * expr.h (expand_builtin_trap): Declare. * expr.c (expand_assignment): Emit a trap for integral offsets from registers that weren't reduced to bitpos. * tree-cfg.c (mark_array_ref_addressable_1): Remove. (mark_array_ref_addressable): Remove. * tree-flow.h (mark_array_ref_addressable): Remove. * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it. 2005-10-15 James E Wilson PR target/24232 * sched-deps.c (add_dependence_list): New arg UNCOND. Fix all callers. (add_dependence_list_and_free): Likewise. (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p call. 2005-10-15 Diego Novillo PR 23141 PR 23142 * tree-vrp.c (vrp_meet): Fix the intersection of equivalence sets VR0->EQUIV and VR1->EQUIV when meeting a range and an anti-range. (vrp_visit_phi_node): Only prevent infinite iterations when the previous result and the new result are both VR_RANGEs. 2005-10-15 Ranjit Mathew * tree-into-ssa.c (mark_def_sites): Correct minor typo in function comment. 2005-10-14 Volker Reichelt PR c/23439 * c-parser.c (c_parser_for_statement): Use location of RID_FOR to initialize loc. 2005-10-14 Per Bothner PR preprocessor/21250 * c-ppoutput.c (print_line): Print internal line 0 as 1. 2005-10-14 Nathan Sidwell PR c++/22551 * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's overflow flags. Refactor some conditionals. 2005-10-13 Andrew Pinski PR tree-opt/21304 * tree-dfa.c (add_referenced_var): Only look at decls which have TREE_CONSTANT or TREE_READONLY set instead of if !TREE_PUBLIC or !TREE_CONSTANT. 2005-10-13 James E Wilson * doc/invoke.texi: For -x, add f95-cpp-input. * doc/install.texi: For --enable-languages doc, change f95 to fortran. 2005-10-12 Sebastian Pop PR tree-optimization/24262 * tree-data-ref.c (analyze_offset_expr): Check that init is invariant in loop all the time. 2005-10-12 Richard Henderson PR c/24255 * tree.h (DECL_TRANSPARENT_UNION): Remove. * function.c (assign_parm_find_data_types): Don't support it. * print-tree.c (print_node): Likewise. * c-common.c (handle_transparent_union_attribute): Likewise. Use build_duplicate_type. * tree-inline.c (remap_type_1): Split out of remap_type; properly remap aggregate fields. (build_duplicate_type): New. * doc/extend.texi (Variable Attributes): Remove documentation for transparent_union. 2005-10-12 Eric Botcazou PR target/24284 * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand. (gen_stack_pointer_dec): Likewise. 2005-10-12 Danny Smith PR middle-end/21275 PR middle-end/21766 * target.h (struct gcc_target): Add valid_dllimport_attribute_p target hook. (struct cxx): Add adjust_class_at_definition target hook. * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define, defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to hook_void_tree. Add to TARGET_CXX. * tree.h (struct decl_with_vis): Rename non_addr_const_p field to dllimport_flag. (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro. * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P instead of attribute. Check for dllexport override. Warn if inconsistent dll linkage. Don't lose old dllimport if decl has had address referenced. Tweak lookup of dllimport atribute. (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p for target specific rules. Don't add dllimport attribute if DECL_DECLARED_INLINE_P. Set DECL_DLLIMPORT_P when adding dllimport attribute. (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P. * varasm.c (initializer_constant_valid_p): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P PR target/21801 PR target/23589 * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to 'cxx_target_objs', winnt-stubs,o to 'extra_objs'. (i[34567]86-*-mingw32*): Likewise. * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document. (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document. * config/i386/winnt.c (i386_pe_dllimport_p): Factor out C++-specific code. Change return value to bool. (i386_pe_dllimport_p): Likewise. (associated_type): Simplify and make language-independent (i386_pe_encode_section_info): Replace override of ambiguous dllimport symbol refs with a gcc_assert. (i386_pe_valid_dllimport_attribute_p): Define. * config/i386/winnt-cxx.c: New file. Define C++ versions of i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, i386_pe_adjust_class_at_definition. * config/i386/winnt-stubs.c: New file. Define stub versions of lang-specific functions. * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, i386_pe_adjust_class_at_definition. (i386_pe_valid_dllimport_attribute_p): Declare. * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define. (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define. * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o. PR target/19704 * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for dllimport attribute with test of DECL_DLLIMPORT_P. 2005-10-12 Adrian Straetling * combine.c (make_extraction): Correct offset computation. 2005-10-12 Hans-Peter Nilsson * config/cris/t-linux (LIMITS_H_TEST): Define. 2005-10-12 Richard Henderson PR rtl-opt/23324 * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p. 2005-10-12 Richard Guenther * Makefile.in (CGRAPH_H): Depend on $(TREE_H). 2005-10-12 Nathan Sidwell PR c++/19964 * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid type. 2005-10-12 Richard Guenther PR c++/23799 * varasm.c (output_constant): Correct typo from previous patch by DJ. 2005-10-11 Ian Lance Taylor PR rtl-optimization/13931 * combine.c: Revert patch of 2003-05-14, and: (try_combine): Only set elim_i1 and elim_i2 if the destination is completely killed in the appropriate insn. (distribute_notes): Don't skip multiple hard register test for elim_i1 and elim_i2. 2005-10-11 Richard Henderson PR c/24255 * c-typeck.c (convert_for_assignment): Use build_constructor_single to initialize a transparent union instead of a nop_expr. 2005-10-11 Richard Henderson * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H. * tree-ssa-dce.c: Include tree-scalar-evolution.h. (tree_ssa_dce_loop): Call scev_reset. PR tree-opt/24300 * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H. * tree-ssa-dce.c: Include cfgloop.h. (tree_ssa_dce_loop, pass_dce_loop): New. * tree-pass.h (pass_dce_loop): Declare it. * passes.c (init_optimization_passes): Use it. 2005-10-11 Eric Botcazou PR middle-end/24263 * convert.c (convert_to_real): Revert 2005-10-05 patch. Only apply the optimization for rounding builtins if the inner cast is also an extension. 2005-10-11 Andrew Pinski PR tree-opt/23946 * tree-ssa-ccp.c (execute_fold_all_builtins): Call mark_new_vars_to_rename instead of update_stmt. 2005-10-11 Bernd Schmidt * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini. 2005-10-11 Jakub Jelinek * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type for setting MMX register to 0 rather than mmx. 2005-10-10 Steve Ellcey PR target/12098 * configure.ac: Move gas check from mips specific case to common case. Do check for GNU as for mips*-*-* and *-*-hpux* targets. * configure: Regenerate * doc/install.texi: Update. 2005-10-10 Eric Botcazou PR target/24284 * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN. 2005-10-10 Maciej W. Rozycki * gcc.c (do_spec_1): Accept numeric characters in file name suffixes. 2005-10-10 Nick Clifton * config/arm/arm.c: Remove extraneous whitespace. Remove comment describing the deleted arm_gen_rotated_half_load function. 2005-10-09 Kaz Kojima * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for __fpscr_values. 2005-10-09 Daniel Jacobowitz * config.gcc (arm*-*-linux*): Remove redundant extra_parts and gnu_ld assignments. * config/arm/t-linux-eabi (LIB1ASMFUNCS) (EXTRA_MULTILIB_PARTS): Define. * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC) (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC) (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to... * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC) (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC) (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here. 2005-10-09 Zdenek Dvorak PR tree-optimization/24226 * tree-cfg.c (remove_bb): Clean up unreachable loops. * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare. * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop): Export. 2005-10-09 Eric Botcazou * config/sparc/gmon-sol2.c (internal_mcount): Mark as used. 2005-10-08 Andrew Pinski PR target/24136 * config/rs6000/darwin.md (movdf_low_si): Remove early clobber. Rewrite for no need for the early clobber. 2005-10-08 Kazu Hirata Merge from csl-arm-branch: 2005-09-07 Paul Brook * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a space to string. 2005-04-30 Paul Brook * config/arm/bpabi.h (TARGET_DEFAULT): Define. * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define. 2005-03-07 Daniel Jacobowitz * config/arm/arm.c (arm_all_abis): Add aapcs-linux. (arm_override_options): Use TARGET_AAPCS_BASED. * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX. (PTRDIFF_TYPE): Use int for AAPCS. (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux. * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define. (DEFAULT_SHORT_ENUMS): Delete. * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux. 2004-12-15 Daniel Jacobowitz * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef. * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0. * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC. 2004-12-03 Mark Mitchell * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define. 2004-11-22 Mark Mitchell * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit. 2004-11-19 Mark Mitchell * config.gcc (arm*-*-linux-gnueabi): Add it. * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before redefining it. (TARGET_OS_CPP_BUILTINS): Likeiwse. * config/arm/linux-eabi.h: New file. * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro. (LINUX_TARET_LINK_SPEC): Likewise. (LINK_SPEC): Use it. * config/arm/t-linux-eabi: New file. 2005-10-08 Steven Bosscher PR other/22202 * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous spaces. (PARAM_SMS_DFA_HISTORY): Likewise. 2005-10-08 Kazu Hirata PR middle-end/23150 * calls.c (mem_overlaps_already_clobbered_arg_p): New. (load_register_parameters): Call it. (check_sibcall_argument_overlap_1): Likewise. (store_one_arg): Likewise. 2005-10-07 James E. Wilson * config/ia64/vect.md (ashl3, ashr3, lshr3): Use DImode not VECINT24 for operand 2. PR target/23644 * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from -mtune-arch. PR target/24193 * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal, fr_spill): Use destination_operand for operand 0. 2005-10-07 DJ Delorie * varasm.c (output_constant): Limit error to expanding conversions. 2005-10-07 Richard Guenther PR middle-end/24227 * fold-const.c (fold_binary): Fix operand types during folding of X op (A, Y). Evaluation order of the side-effects of X and A are frontend-defined, so ensure we honour that even for tcc_comparison class operands; eased by removing duplicate code. 2005-10-07 Steve Ellcey * stor-layout.c (layout_type): Do not allow alignment of array elements to be greater than their size. 2005-10-07 Steve Ellcey * config.host (hppa*-*-hpux*): Change out_host_hook_obj and host_xmake_file. (hppa*-*-linux*): Ditto. (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file. * config/host-hpux.c: New. * config/x-hpux: New. * config/pa/x-hpux: Remove. * config/pa/x-linux: Remove. * config/pa/pa-host.c: Remove. 2005-10-07 Jeff Law * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to determine whether or not to try and thread outgoing edges. 2005-10-07 David Edelsohn * config/rs6000/rs6000.md (eqsi_power): New. (neg_eq0si): Add TARGET_POWER to final condition. (neg_eqsi): Same. 2005-10-06 Richard Henderson * config/rs6000/rs6000.c: Revert last change. 2005-10-06 Richard Henderson * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New. (TARGET_CANNOT_FORCE_CONST_MEM): Use it. 2005-10-06 Andrew Pinski PR middle-end/22216 PR middle-end/23651 * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear out return_label and naked_return_label. 2005-10-06 Daniel Berlin * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last change. 2005-10-06 Richard Henderson PR tree-opt/22237 * tree-inline.c (declare_return_variable): Handle modify_dest not being a DECL. 2005-10-06 Daniel Berlin Fix PR tree-optimization/22488 * tree-ssa-structalias.c (check_for_overlaps): New function. (create_variable_info_for): Use it. 2005-10-06 Richard Henderson PR debug/24070 * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file. (dwarf2out_start_source_file): Print it. 2005-10-06 Geoffrey Keating * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='. 2005-10-06 Richard Henderson PR 23706 * mode-switching.c (optimize_mode_switching): Clear transp bit for block with incomming abnormal edges. * config/sh/sh.c (fpscr_values, emit_fpu_switch): New. (fpscr_set_from_mem): Use them. * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove. (fpscr postinc splitters): Rewrite as peephole2+split. 2005-10-06 David Edelsohn * config/rs6000/rs6000.md (eq): Add !TARGET_POWER. (eq_compare): Same. 2005-10-06 Richard Guenther PR tree-optimization/24238 * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL. 2005-10-06 Daniel Jacobowitz * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables here. Use AC_PATH_PROG for environment variables instead of test -x. * configure.ac: Update calls to gcc_AC_CHECK_TOOL. Use it for objdump also. * configure: Regenerated. 2005-10-06 Richard Earnshaw PR target/23783 * arm.md (call): If the address isn't a SYMBOL_REF or a register, then force it into a register. (call_value): Likewise. 2005-10-06 Richard Henderson PR 24049 * passes.c (init_optimization_passes): Move pass_lower_vector_ssa under pass_vectorize. Clear TODO_ggc_collect from the dce pass under pass_vectorize. 2005-10-05 Devang Patel PR Debug/23205 * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after handling constants. Check NAMESPACE_DECL context for constants. 2005-10-05 Eric Christopher * doc/md.texi (Standard Names): Fix name of pushm1 pattern. 2005-10-05 Richard Henderson PR 23714 * tree-cfg.c (mark_array_ref_addressable_1): New. (mark_array_ref_addressable): New. * tree-flow.h (mark_array_ref_addressable): Declare. * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it. 2005-10-05 Andrew Pinski PR middle-end/20606 PR middle-end/24069 * reload.c (subst_reloads): When adding a REG_LABEL to a jump instruction, also update JUMP_LABEL. 2005-10-05 David Edelsohn * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New. * bb-reorder.c (copy_bb_p): Use it. * doc/invoke.texi (param table): Add max-grow-copy-bb-insn. 2005-10-05 Richard Henderson PR target/23602 * toplev.c (process_options): Warn about unsupported combinations of unwind tables and omit-frame-pointer. * config/i386/i386.c (override_options): Similarly. Enable accumulate-outgoing-args if not explicitly disabled. 2005-10-05 Steve Ellcey * vect.md (vec_initv2si): Fix typo of V2SF to V2SI. Handle big endian vs. small endian. (vec_initv2sf): Handle big endian vs. small endian. (*vec_extractv2sf_1): Ditto. 2005-10-05 Dale Johannesen * convert.c (convert_to_real): Don't convert (float)floor(double d) to floorf((float)d). 2005-10-05 Daniel Jacobowitz * config/arm/arm.md (insv): Use gen_int_mode in more places. 2005-10-05 Andrew MacLeod PR tree-optimization/18587 * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete. (build_defs, build_uses, build_v_may_defs, build_v_must_defs, build_vuses): Change to VEC type. (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free, opbuild_num_elems, opbuild_append_real, opbuild_append_virtual, opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual, opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete. (get_name_decl): New. Return DECL_UID of base variable. (operand_build_cmp): New. qsort comparison routine. (operand_build_sort_virtual): New. Sort virtual build vector. (init_ssa_operands, fini_ssa_operands): Use VEC routines. (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index. (FINALIZE_BASE): Use get_name_decl. (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs, finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs, (start_ssa_stmt_operands, append_def, append_use, append_vuse, append_v_may_def, append_v_must_def): Replace opbuild_* routines with direct VEC_* manipulations. (build_ssa_operands): Call operand_build_sort_virtual. (copy_virtual_operand, create_ssa_artficial_load_stmt, add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines with direct VEC_* manipulations. * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines with direct VEC manipulations. 2005-10-05 Paolo Bonzini PR tree-optimization/21419 PR tree-optimization/24146 PR tree-optimization/24151 * c-typeck.c (readonly_error): Handle USE being lv_asm. (build_asm_expr): Call it if outputs are read-only. * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419. 2005-10-05 Billy Biggs Paolo Bonzini PR target/23809 * doc/extend.texi (x86 Built-ins): Document that -msse and friends enable the instructions and not just the built-ins. * doc/invoke.texi (x86 Options): Likewise. 2005-10-04 Geoffrey Keating * config/i386/t-darwin (SHLIB_VERPFX): Fix typo. * doc/invoke.texi (Option Summary): Correct spelling of -mmacosx-version-min. 2005-10-04 Devang Patel * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for real types. 2005-10-04 Steve Ellcey * tree-vect-transform.c (vect_create_epilog_for_reduction): Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN. 2005-10-04 Adrian Straetling * config/s390/s390.md ("TDSI","DP"): New mode macros. ("TE","tg"): New mode attributes. ("sync_compare_and_swap"): Replace with a define_expand. ("sync_compare_and_swap_cc"): Replace GPR with TDSI. ("*sync_compare_and_swap_cc"): Replace with one pattern for dword_mode and one for GPRmode. 2005-10-04 Ian Lance Taylor PR preprocessor/13726 * c-ppoutput.c (cb_include): Add comments parameter, and print out any comments passed in. 2005-10-04 Andrew Pinski * tree.c (annotate_with_file_line): Fix typo. 2005-10-04 Ulrich Weigand PR ada/19382 * builtins.c (fold_builtin_memcmp): When constructing the pointer type used to access data in the inlined length == 1 case, use build_pointer_type_for_mode with CAN_ALIAS_ALL set to true. (fold_builtin_strcmp, fold_builtin_strncmp): Likewise. 2005-10-04 Uros Bizjak * config/i386/i386.h (TARGET_FISTTP): Enable also for TARGET_SSE3 and only for TARGET_80387. * config/i386/i386.md (fix_trunc_fisttp_i387_1, (fix_trunc_i387_fisttp, fix_trunc_i387_fisttp_with_temp): Do not depend on TARGET_80387. 2005-10-04 Andrew Pinski * tree.c (last_annotated_node): Change type to location_t*. (annotate_with_file_line): Reflect the change of last_annotated_node type. 2005-10-04 Richard Guenther PR c/23576 * c-decl.c (grokdeclarator): Don't write to fields of error_mark_node. 2005-10-04 Andrew Pinski PR middle-end/23125 * c-decl.c (finish_decl): Use set_user_assembler_name even for register variables. * varasm.c (make_decl_rtl): If a register variable does not have a set user assmbler name, error out. Decode the asmspec is now name+1 bypassing '*'. 2005-10-04 Steven Bosscher PR tree-optimization/23049 * tree-ssa-dom.c (thread_across_edge): Make sure that the condition of a COND_EXPR is folded before calling fold on the whole rhs of a conditional assignment. * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to document that a COND_EXPR may appear there. 2005-10-03 Diego Novillo PR 23445 * tree-vrp.c (extract_range_from_assert): If the new numeric range created out of the assertion contradicts the existing numeric range of the ASSERT_EXPR variable, make the new range varying. 2005-10-03 Kaz Kojima * config/sh/sh.c (sh_register_move_cost): Add case for moving from T_REGS to FP register class. 2005-10-03 Richard Henderson PR 24135 * tree-nested.c (convert_nl_goto_reference): Lookup a translation before creating a new one. 2005-10-03 David Edelsohn * config/rs6000/t-aix43 (LDFLAGS): New. * config/rs6000/t-aix52 (LDFLAGS): New. 2005-10-03 Ian Lance Taylor * gimplify.c (find_single_pointer_decl_1): New static function. (find_single_pointer_decl): New static function. (internal_get_tmp_var): For a formal variable, set restrict base information if appropriate. * alias.c (find_base_decl): If a VAR_DECL has a restrict base, return it. * tree.h (DECL_BASED_ON_RESTRICT_P): Define. (DECL_GET_RESTRICT_BASE): Define. (SET_DECL_RESTRICT_BASE): Define. (decl_restrict_base_lookup): Declare. (decl_restrict_base_insert): Declare. (struct tree_decl_with_vis): Add based_on_restrict_p field. * tree.c (restrict_base_for_decl): New static variable. (init_ttree): Initialize restrict_base_for_decl. (copy_node_stat): Copy restrict base information. (decl_restrict_base_lookup): New function. (decl_restrict_base_insert): New function. (print_restrict_base_statistics): New static function. (dump_tree_statistics): Call print_restrict_base_statistics. 2005-10-02 Diego Novillo PR 24142 * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in case of anti-ranges. 2005-10-02 Andrew Pinski PR c/18851 * c-typeck.c (tagged_tu_seen): Rename to ... (tagged_tu_seen_cache): this and add val field. (comptypes): Move functional to comptypes_internal and free tagged_tu_seen. (comptypes_internal): New function and call comptypes_internal instead of comptypes. Speed up by sibcalling tagged_types_tu_compatible_p. (alloc_tagged_tu_seen): New function (free_all_tagged_tu_seen_up_to): New function. (tagged_types_tu_compatible_p): Return the val of the seen two types. Add that the two types are the same to tagged_tu_seen_base if they are and call comptypes_internal instead of comptypes. : Speed up common type where the fields are in the same order. (function_types_compatible_p): Call comptypes_internal instead of comptypes. (type_lists_compatible_p): Likewise. (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/. 2005-10-02 Matthias Klose * doc/invoke.texi: Fix typo and speling error. 2005-10-01 Richard Henderson * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too. 2005-10-01 Mark Mitchell * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define using --start-group and --end-group. 2005-10-01 Diego Novillo * tree-vrp.c (value_inside_range, range_includes_zero_p): Add FIXME note regarding quirky semantics. 2005-10-01 Diego Novillo PR 24141 * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a non-null range as a last resort. 2005-10-01 James A. Morrison Diego Novillo PR 23604 * tree-vrp.c (extract_range_from_assert): For != assertions, only build an anti-range if LIMIT is a single-valued range. 2005-09-30 Richard Earnshaw * arm.md (movqi): On thumb when optimizing, handle loading from memory by describing this as taking a subreg of a zero-extended load into an SImode register. (movhi): Likewise. 2005-09-30 Daniel Jacobowitz * reload1.c (merge_assigned_reloads): Do not change any RELOAD_FOR_OUTPUT_ADDRESS reloads. 2005-09-30 Geoffrey Keating * Makefile.in (LIPO_FOR_TARGET): Define. (STRIP_FOR_TARGET): Define. * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks before creating new ones. Do symlinks before creating the actual targets. * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib to work out which multilibs are actually being built. 2005-09-30 Kazu Hirata * tree-vect-transform.c, config/ms1/ms1.md, config/s390/s390.c, config/v850/v850.md: Fix comment typos. Follow spelling conventions. * doc/invoke.texi, doc/md.texi: Fix typos. 2005-09-30 Andrew Macleod PR tree-optimization/21430 * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual use operands, and set stmt pointer if need be. (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine. tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if present. 2005-09-29 Richard Kenner PR middle-end/24053 * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype. 2005-09-29 Mark Mitchell * optabs.c (expand_binop): Initialize first_pass_p. 2005-09-29 Jakub Jelinek PR middle-end/24109 * c-decl.c (c_write_global_declarations_1): If any wrapup_global_declaration_2 call returned true, restart the loop. 2005-09-29 Daniel Berlin Fix PR tree-optimization/24117 * tree-ssa-structalias.c (find_func_aliases): Strip nops before considering whether to use anyoffset. 2005-09-29 Paolo Bonzini Revert this patch: 2005-09-15 Paolo Bonzini * optabs.c (expand_binop): Use swap_commutative_operands_with_target to order operands. (swap_commutative_operands_with_target): New. 2005-09-29 Paolo Bonzini PR c/21419 * gimplify.c (gimplify_asm_expr): Raise an error if an output is read-only. 2005-09-29 Steven Bosscher PR tree-optimization/23911 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR and IMAGPART_EXPR too. 2005-09-28 Mark Mitchell PR 17886 * expmed.c (expand_shift): Move logic to reverse rotation direction when rotating by constants ... * optabs.c (expand_binop): ... here. * config/i386/i386.md (rotrdi3): Handle 32-bit mode. (ix86_rotrdi3): New pattern. (rotldi3): Handle 32-bit mode. (ix86_rotldi3): New pattern. 2005-09-29 Alan Modra PR target/24102 * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range check for numbers that need no bit twiddle. 2005-09-28 Geoffrey Keating * config/rs6000/t-darwin8: Uncomment contents, allow -m64 multilib to be built. * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET. (stage1-start): Delete old libgcc and libunwind before moving anything into the stage directory. (stage2-start): Likewise. (stage3-start): Likewise. (stage4-start): Likewise. (stageprofile-start): Likewise. (stagefeedback-start): Likewise. * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h header in tm_file and CPU-specific t-darwin in tmake_file. (i[34567]86-*-darwin*): Don't change tm_file. (powerpc-*-darwin*): Don't change tm_file or tmake_file. * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc shared library stub for target OS version. * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete. (SHLIB_LINK): Don't make SHLIB_SOLINK. (SHLIB_INSTALL): Don't install SHLIB_SOLINK. (libgcc_s.%.dylib): New. (LIBGCC): Define. (install-darwin-libgcc-stubs): New. (INSTALL_LIBGCC): New append. * config/i386/darwin-libgcc.10.4.ver: New. * config/i386/darwin-libgcc.10.5.ver: New. * config/i386/t-darwin: New. * config/rs6000/darwin-libgcc.10.4.ver: New. * config/rs6000/darwin-libgcc.10.5.ver: New. * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete. * config/rs6000/t-darwin (SHLIB_VERPFX): Define. 2005-09-28 Paul Brook * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle denormals. 2005-09-28 Richard Guenther PR tree-optimization/23853 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use host_integerp to verify misalignment value. 2005-09-28 Richard Henderson * builtins.c (get_builtin_sync_mode): New. (expand_builtin_sync_operation): Pass in mode argument. (expand_builtin_compare_and_swap): Likewise. (expand_builtin_lock_test_and_set): Likewise. (expand_builtin_lock_release): Likewise. (expand_builtin): Update to match. 2005-09-28 Nick Clifton * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up formatting. Add check to PLUS case to ensure that the offset is within an acceptable range. * config/v850/v850.md (casesi): Disable the generation of the switch pattern as it is not being handled properly at the moment. * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction for when the high words are identical. 2005-09-27 Richard Henderson * pretty-print.c (pp_base_format): Fix typo for %>. 2005-09-27 Daniel Berlin Devang Patel PR tree-optimization/23625 * tree-flow-inline.h (bsi_after_labels): Remove, first statement is LABEL_EXPR, assertion check. 2005-09-27 J"orn Rennecke * optabs.c (no_conflict_move_test): Check if a result of a to-be-moved insn would be clobbered by an originally preceding insn. 2005-09-27 Jeff Law * passes.c (init_optimization_passes): Replace copy propagation passes immediately after DOM with phi-only copy propagation pases. Add phi-only copy propagation pass after first DOM pass. * tree-pass.h (pass_phi_only_copy_prop): Declare. * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument. If true, then mark all non-control statements with DONT_SIMULATE_AGAIN. (execute_copy_prop): Accept new PHI_ONLY argument. Pass it along to init_copy_prop. Callers updated. (do_phi_only_copy_prop): New function. (pass_phi_only_copy_prop): New pass descriptor. 2005-09-27 Nick Clifton * libgcc2.c (__popcount_tab): Remove redundant prototype. 2005-09-26 Jason Merrill PR c++/13764 * c-common.c (finish_fname_decls): Use append_to_statement_list_force. * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs. 2005-09-26 James E Wilson * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc copyright. Add gcc copyright plus libgcc exception. * config/ia64/crtfastmath.asm: Remove glibc copyright. Add gcc copyright. * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception. 2005-09-26 Jeff Law * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective about when to iterate. 2005-09-23 Fariborz Jahanian PR target/23847 * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern for __complex__ double in -mcpu=G5 mode. 2005-09-26 Sebastian Pop PR tree-optimization/23942 * Makefile.in (SCEV_H): Depends on PARAMS_H. * tree-scalar-evolution.c: Include params.h. (t_bool): New enum. (follow_ssa_edge, follow_ssa_edge_in_rhs, follow_ssa_edge_in_condition_phi_branch, follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi): Change return type to t_bool. Use a parameter to limit the size of trees that are walked before stopping (analyze_evolution_in_loop): Initialize the limit to 0. (follow_ssa_edge): Give up by returning t_dont_know if the limit exceeds PARAM_SCEV_MAX_EXPR_SIZE. 2005-09-26 Uros Bizjak PR middle-end/23831 * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT. 2005-09-26 Fariborz Jahanian * combine.c (make_extraction): Check for valid use of subreg. 2005-09-26 Uros Bizjak PR target/24055 * config/i386/i386.md ("*fistdi2_1"): New pattern. ("*fist2_1"): Use only HImode and SImode register operands. ("fist2_with_temp"): Use only register operands. 2005-09-26 J"orn Rennecke * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in CALL_INSN_FUNCTION_USAGE. 2005-09-26 Richard Guenther PR middle-end/15855 * gcse.c: Include hashtab.h, define ldst entry hashtable. (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions. (ldst_entry): Use the hashtable instead of list-walking. (find_rtx_in_ldst): Likewise. (free_ldst_entry): Free the hashtable. (compute_ld_motion_mems): Create the hashtable. (trim_ld_motion_mems): Remove entry from hashtable if removing it from list. (compute_store_table): Likewise^2. (store_motion): Free hashtable in case we did not see any stores. 2005-09-25 Kazu Hirata * fold-const.c (fold_binary): Use op0 and op1 instead of arg0 and arg1 if we are passing them to fold_build2. 2005-09-25 Dan Nicolaescu PR 23828 * config/i386/i386.c (ix86_function_regparm): Fix the test for a nested function. 2005-09-25 Richard Henderson * config/alpha/alpha.c (tls_symbolic_operand_1): Trust SYMBOL_REF_TLS_MODEL to be correct. 2005-09-24 Richard Henderson * ipa-type-escape.c (discover_unique_type): Remove dead code at end of function. Reindent. 2005-09-24 Ian Lance Taylor * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in NEGATE_EXPR/BIT_NOT_EXPR case. 2005-09-24 Richard Henderson * c-common.c (handle_mode_attribute): When not modifying in place, create subtypes for enumerations. (sync_resolve_return): Use TYPE_MAIN_VARIANT. * gimplify.c (create_tmp_from_val): Likewise. 2005-09-24 Alexandre Oliva * config/i386/i386.md (*tls_global_dynamic_64, *tls_local_dynamic_base_64): Add missing mode to call. (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise. 2005-09-24 Jan Hubicka * cgraph.c (cgraph_clone_edge): Make the scale gcov_type. (cgraph_clone_node): Likewise. * cgraph.h (cgraph_clone_edge): Update prototype. (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove duplicated prototypes; add updating argument. * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative. * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without updating profile. (cgraph_mark_inline_edge): Likewise. (cgraph_mark_inline): Update use of cgraph_mark_inline_edge. (cgraph_flatten_node): Likewise. (cgraph_decide_recursive_inlining): Likewise. (cgraph_decide_inlining_of_small_function): Likewise. * tree-optimize.c (tree_rest_of_compilation): Likewise. 2005-09-23 David Edelsohn Pete Steinmetz * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul. (rldic.): Set type to "compare". (rldicr.): Same. (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR. Set type to mfjmpr for MFCTR/MFLR. (movdf_hardfloat64): Same. (movdf_softfloat64): Same. Correct order of store and move types. (movti_string): Set type to store_ux/load_ux. (load_multiple): Set type to load_ux. (store_multiple): Set type to store_ux. (movmemsi): Set type to store_ux. (output_cbranch direct_return): Set type to jmpreg. (stmw): Set type to store_ux. (lmw): Set type to load_ux. * config/rs6000/40x.md (ppc403-store): Increase latency to 2. * config/rs6000/440.md (ppc440-store): Increase latency to 6. * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles. * config/rs6000/6xx.md (ppc604-store): Increase latency to 3. * config/rs6000/mpc.md (mpccore-store): Increase latency to 2. * config/rs6000/rios1.md (rios1-store): Increase latency to 2. (rios1-fpstore): Increase latency to 3. * config/rs6000/rios2.md (rios2-store): Increase latency to 2. * config/rs6000/rs64.md (rs64a-store): Increase latency to 2. 2005-09-23 David Edelsohn Andrew Pinski * config/rs6000/sync.md (sync_si_internal): Change operand2 constraint to "b". (sync_di_internal): Same. (sync_old_si_internal): Change operand3 constraint to "b". (sync_old_di_internal): Same. (sync_new_si_internal): Same. (sync_new_di_internal): Same. 2005-09-23 J"orn Rennecke PR middle-end/23991 * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length case, define as macros. PR rtl-optimization/23837 * optabs.c (no_conflict_move_test): Don't set must_stay for a clobber / clobber match between dest and p->first. * optabs.c (emit_libcall_block): Use no_conflict_move_test. (no_conflict_move_test): Update comments. 2005-09-22 Ranjit Mathew * doc/install.texi: Update URL for Jacks. * doc/sourcebuild.texi: Likewise. 2005-09-22 David Edelsohn PR target/24007 * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special registers when choosing register preferences. (movdf_hardfloat64): Same. 2005-09-22 Andreas Krebbel * expmed.c (expand_shift): Don't use the target of the rotate as target for the first expanded shift insn. * testsuite/gcc.dg/20050922-1.c: Testcase added. 2005-09-21 Zdenek Dvorak PR tree-optimization/22438 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all preserved iv rhs rewriting specially. 2005-09-21 Daniel Berlin * tree-data-ref.c (analyze_array_indexes): Only estimate when estimate_only is true. * tree-flow.h (ref_contains_indirect_ref): New prototype. * tree-flow-inline.h (ref_contains_indirect_ref): Moved from tree-ssa-structalias.c * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use ref_contains_indirect_ref. * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved. 2005-09-21 DJ Delorie * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_PTR_A0D0. (mn10300_return_in_memory): Support variable size types also. (mn10300_pass_by_reference): Likewise. (mn10300_function_value): New. * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above. (FUNCTION_OUTGOING_VALUE): Likewise. * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0. * doc/invoke.texi: Document it. 2005-09-21 Uros Bizjak PR target/22585 * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not force integer op1 into register for XFmode compares. 2005-09-21 Kazu Hirata PR middle-end/23971 * expmed.c (alg_code): Add alg_impossible. (alg_hash_entry): Add cost. (synth_mult): Record alg_impossible in the hash table if multiplication by a given integer is impossble within the limit. Speed up using alg_impossible. 2005-09-20 Daniel Berlin * tree-ssa-structalias.c (get_constraint_for_component_ref): Add argument. Allow and set any offset if needs_anyoffset is passed in. (get_constraint_for): Add argument here too. Pass it down. (do_structure_copy): Pass NULL to get_constraint_for. (handle_ptr_arith): Ditto. (find_func_aliases): Ditto. 2005-09-20 J"orn Rennecke PR rtl-optimization/23898 * output.h (get_attr_min_length): Declare. * final.c (get_attr_length_1): New function, broken out of: (get_attr_length). (get_attr_min_length): New function. * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it. (duplicate_computed_gotos): Likewise. * genattr.c (insn_min_length): Generate declaration. * genattrtab.c (min_fn, min_attr_value): New functions. (make_length_attrs): Generate insn_min_length. 2005-09-20 Steve Ellcey * config/pa/pa.c (output_cbranch): Check for zero in operands[2]. 2005-09-20 Richard Henderson PR tree-optimization/24059 * expr.c (expand_expr_real_1) : Allow modifier EXPAND_STACK_PARM. 2005-09-20 Joseph S. Myers * c.opt (fextended-identifiers): New. * c-opts.c (c_common_handle_option): Handle -fextended-identifiers. * doc/cpp.texi: Update documentation of extended identifiers. * doc/cppopts.texi (-fextended-identifiers): Document. 2005-09-20 Jakub Jelinek PR tree-optimization/23929 * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately if expr is NULL. PR tree-optimization/23818 * tree-stdarg.c (execute_optimize_stdarg): Call calculate_dominance_info. 2005-09-20 Daniel Berlin * tree-data-ref.c (get_number_of_iters_for_loop): New function. (analyze_siv_subscript_cst_affine): Add weak SIV test. (compute_overlap_steps_for_affine_1_2): Use get_number_of_iters_for_loop. (analyze_subscript_affine_affine): Check whether difference is zero first. Use get_number_of_iters_for_loop. Check whether overlap occurs outside of bounds. (analyze_miv_subscript): Use get_number_of_iters_for_loop. 2005-09-20 Andreas Krebbel * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the base register if possible. 2005-09-20 Zdenek Dvorak PR tree-optimization/18463 * tree-chrec.c (chrec_convert): Return fold_converted chrec if converting it directly is not possible. (chrec_convert_aggressive): New function. * tree-chrec.h (chrec_convert_aggressive): Declare. * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers): Fold chrec conversions aggressively if asked to. (instantiate_parameters): Modified because of changes in instantiate_parameters_1. 2005-09-19 Richard Henderson * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf. (reduc_splus_v2df): New. 2005-09-19 Richard Sandiford * config/arm/aof.h (REGISTER_NAMES): Add missing backslash. (ADDITIONAL_REGISTER_NAMES): Add missing comma. Remove final comma. 2005-09-19 Richard Henderson * config/i386/sse.md (vcondu): Rename from vcondu. 2005-09-19 Richard Henderson * config/ia64/ia64.c (ia64_expand_widen_sum): New. (ia64_expand_dot_prod_v8qi): New. * config/ia64/ia64-protos.h: Update. * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3, widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi, sdot_prodv8qi, sdot_prodv4hi): New. (reduc_splus_v2sf): Rename from reduc_plus_v2sf. 2005-09-19 Richard Henderson PR 23941 * real.c (exact_real_truncate): Return false if the format cannot represent the number as a normal. * config/alpha/alpha.c (alpha_rtx_costs) : Cost 0 for a memory source. 2005-09-19 Dorit Nuzman * tree-ssa-operands.c (swap_tree_operands): Export. * tree.h (swap_tree_operands): Declare. * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED. Call swap_tree_operands. 2005-09-19 Richard Henderson * tree-flow.h (merge_alias_info): Declare. * tree-ssa-copy.c (merge_alias_info): Export. * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove. (vect_create_data_ref_ptr): Use create_iv directly. (vectorizable_load): Use correct types for integer constants. (vect_generate_tmps_on_preheader): Likewise. (vect_gen_niters_for_prolog_loop): Likewise. 2005-09-19 Steven Bosscher PR rtl-optimization/23943 * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx. 2005-09-18 Jan Hubicka * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK. 2005-09-18 Eric Botcazou * varasm.c (output_constant): Do not abort on conversions to union types between different sizes. 2005-09-18 Richard Guenther PR middle-end/23944 * gimplify.c (fold_indirect_ref_rhs): Fix thinko in fallback. 2005-09-18 Paul Brook * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow. 2005-09-17 Richard Henderson * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change. * tree-ssa-loop.c (pass_vect_dce): Remove. * passes.c (init_optimization_passes): Add pass_dce as a sub-pass of pass_vectorize. 2005-09-17 Richard Henderson * tree-pass.h (pass_vect_dce): Declare. * passes.c (init_optimization_passes): Add it. * tree-flow.h (tree_ssa_dce): Declare. * tree-ssa-dce.c (tree_ssa_dce): Export. * tree-ssa-loop.c (tree_vectorize): Move current_loops check ... (gate_tree_vectorize): ... here. (pass_vect_dce): New. 2005-09-17 Jan Hubicka * except.c (struct eh_status): Turn region_array into vec. (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions, convert_from_eh_region_ranges, find_exception_handler_labels, current_function_has_exception_handlers, assign_filter_values, build_post_landing_pads, dw2_build_landing_pads, sjlj_find_directly_reachable_regions, sjlj_mark_call_sites, sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region, foreach_reachable_handler, can_throw_internal_1, convert_to_eh_region_ranges, verify_eh_tree): Update uses of region_array. (duplicate_eh_region_1): Update region_array. (duplicate_eh_regions): Resize region_array and avoid recomputing. 2005-09-17 David Edelsohn PR middle-end/22067 * expmed.c (expand_mult): Substitute simple register for op0 when computing max_cost. 2005-09-17 Richard Henderson * expr.c (emit_move_via_integer): Add force argument, pass it on to emit_move_change_mode. Update callers. (emit_move_complex): Pass true to new force argument. * function.c (expand_function_end): Move expand_eh_return call earlier. Merge sub-word complex values into a pseudo before copying to the return hard register. 2005-09-17 Eric Botcazou * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs between different sizes. 2005-09-16 Paolo Bonzini PR 23903 * passes.c (init_optimization_passes): Register dump files for IPA passes first. 2005-09-16 Andreas Krebbel * config/s390/s390-protos.h (s390_overlap_p): Prototype added. * config/s390/s390.c (s390_overlap_p): New function. * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc" peephole2, "*xc" peephole2): Added overlap check to the peephole2 condition. 2005-09-16 Richard Guenther * ipa-pure-const.c (static_execute): Free auxiliar information. * ipa-type-escape.c (discover_unique_type): Free temporary key. * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap. 2005-09-15 DJ Delorie * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo. 2005-09-15 Paolo Bonzini * optabs.c (expand_binop): Use swap_commutative_operands_with_target to order operands. (swap_commutative_operands_with_target): New. 2005-09-15 Daniel Berlin * tree-data-ref.c (analyze_array_indexes): Add estimate_only parameter. Update callers. (estimate_iters_using_array): New function. * tree-data-ref.h (estimate_iters_using_array): Prototype * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use estimate_iters_using_array instead of analyze_array. 2005-09-15 Eric Botcazou * tree-nested.c (get_frame_type): Mark the "non-local frame structure" as addressable. 2005-09-15 Michael Matz * tree-vrp.c (vrp_int_const_binop ): Handle 0 - -INF. 2005-09-14 Daniel Berlin PR tree-optimization/23835 * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function. (create_name_tags): Rewrite to be not O(num_ssa_names^2). 2005-09-14 Richard Henderson * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand. (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New. 2005-09-14 Andrew Pinski * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break in the ARRAY_TYPE case. 2005-09-14 Eric Botcazou * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF. 2005-09-14 Uros Bizjak PR middle-end/22480 * tree-vect-transform.c (vectorizable_operation): Return false for scalar shift operations and for vector shift operations with non-invariant shift arguments. Use scalar tree operand op1 as a shift operand when vector shift insn pattern uses scalar shift operand. * Makefile.in (tree-vect-transform.o): Depend on recog.h. 2005-09-14 Olivier Hainque * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized value if it has side-effects. 2005-09-14 David Edelsohn PR target/22068 * config/rs6000/rs6000.md (muldi3): Add mulli alternative. 2005-09-14 Alan Modra * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name passed as NAME as if it were label at start of function code. 2005-09-13 Kaz Kojima * config/sh/sh.md (*movv4sf_i): Add general register cases to the constraints. 2005-09-13 Andrew Pinski * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint as early clobber. Rewrite so the PIC register is not implicitly used. 2005-09-13 Volker Reichelt * tree.c (annotate_with_file_line): Compare line numbers before file names. 2005-09-13 Uros Bizjak PR target/23816 * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3) (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns. 2005-09-13 Ian Lance Taylor * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather than a HOST_WIDEST_INT to gen_doloop_begin. 2005-09-13 Diego Novillo * tree-dfa.c (dump_variable): Guard against NULL annotations. 2005-09-13 Zdenek Dvorak PR tree-optimize/23817 * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa. 2005-09-13 Alan Modra PR target/23774 * config/rs6000/rs6000.md (restore_stack_block): Write the backchain word before changing the stack pointer. Use gen_frame_mem for MEMs. Use UNSPEC_TIE to prevent insn scheduling reordering the insns. (restore_stack_nonlocal): Likewise. (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem. 2005-09-12 Ian Lance Taylor PR g++/7874 * c.opt (ffriend-injection): New C++ option. * doc/invoke.texi (Option Summary): Mention -ffriend-injection. (C++ Dialect Options): Document -ffriend-injection. 2005-09-12 Josh Conner PR middle-end/23237 * ipa-reference.c (static_execute): Don't mark variables in named sections TREE_READONLY. 2005-09-12 Alan Modra * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for stack_tie. 2005-09-12 Andrew Pinski * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and V_MUST_DEF instead of just the first_use_p. Don't mark the virtual variables for renaming on the statement which is being removed. (pass_dse): Remove TODO_update_ssa. 2005-09-12 J"orn Rennecke PR middle-end/23290 * stor-layout.c (compute_record_mode): For records with a single field, actually check the field's mode size against the type size. * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose registers for TARGET_SHMEDIA. (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename GENERAL_FP_REGS to GENERAL_DF_REGS. Add GENERAL_FP_REGS as union of GENERAL_REGS and FP_REGS. 2005-09-12 Bernd Schmidt * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem. 2005-09-12 Alan Modra * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels are omitted. Exclude stack_tie insn too. 2005-09-11 David Edelsohn PR rtl-optimization/23098 * config/rs6000/predicates.md (easy_fp_constant): SFmode constant 0.0f is easy. * config/rs6000/rs6000.md (movdf splitter): Use const_double_operand predicate for TARGET_POWERPC64. * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand SYMBOL_REF method to ABI_V4. * config/rs6000/altivec.md (build_vector_mask_for_load): Use replace_equiv_address. * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as rs6000_sr_alias_set and MEM_NOTRAP. (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem(). 2005-09-11 Eric Botcazou * tree.c (contains_placeholder_p) : Properly handle CALL_EXPR again. 2005-09-11 Richard Earnshaw * arm/predicates.md (alignable_memory_operand): Delete. 2005-09-10 Richard Henderson PR debug/23806 * dbxout.c (dbxout_expand_expr): New. (dbxout_symbol): Use it. 2005-09-10 Richard Earnshaw * arm.c (arm_gen_rotated_half_load): Delete. (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem. (emit_multi_reg_push, emit_sfm, arm_expand_prologue) (thumb_set_return_address): Likewise. (thumb_load_double_from_address): Use adjust_address. * arm.md (splits calling arm_gen_rotated_half_load): Delete. (extendhsisi2_mem, movhi_bytes): Use change_address. (movhi): Use widen_memory_access. (reload_out_df): Use replace_equiv_address. * arm-protos.h (arm_gen_rotated_half_load): Delete prototype. 2005-09-09 Richard Henderson PR debug/20998 * dbxout.c: Include expr.h. (dbxout_global_decl): Don't suppress for DECL_RTL unset. (dbxout_symbol): Handle DECL_VALUE_EXPR. * Makefile.in (dbxout.o): Add EXPR_H. 2005-09-09 Zdenek Dvorak PR tree-optimization/23509 * tree-cfg.c (replace_uses_by): Use replace_exp. * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced pointers have name_mem_tag or type_mem_tag set. 2005-09-09 Sebastian Pop * tree-chrec.c (evolution_function_is_invariant_rec_p): Use CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead of wrongly accessing operands. 2005-09-09 Sebastian Pop * Makefile.in (tree-chrec.o): Depends on SCEV_H. * tree-chrec.c: Include tree-scalar-evolution.h. (chrec_convert): Instantiate the base and step before calling scev_probably_wraps_p that would fail on parametric evolutions. Collect all the fails into a single section failed_to_convert, print a diagnostic, and return chrec_dont_know instead of calling fold_convert. * tree-scalar-evolution.c (loop_closed_phi_def): New. (instantiate_parameters_1): Avoid instantiation of loop closed ssa phi nodes. (scev_const_prop): Don't replace the definition of a loop closed ssa phi node by itself, or by another loop closed ssa phi node. * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check that base and step are defined. 2005-09-09 Richard Guenther PR c++/23624 * fold-const.c (fold_ternary): Check truth_value_p before calling invert_truthvalue. 2005-09-09 Nick Clifton * Makefile.in (LIBGCC_DEPS): Add libgcc2.h. * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed dimension of these arrays. * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of these arrays. * longlong.h: Only provide a prototype for the __clz_tab[] array if this header has not been included from libgcc2.h. * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than defining own types. Provide prototypes for exported functions. Use the __clz_tab[] and __popcount_tab[] arrays provided by libgcc2.c. 2005-09-08 Josh Conner PR c++/21135 PR c++/23180 * expr.c (expand_expr_addr_expr_1): Don't invoke expand_simple_binop for EXPAND_INITIALIZER. 2005-09-08 Richard Henderson PR debug/23190 * toplev.c (wrapup_global_declaration_1): Split out ... (wrapup_global_declaration_2): ... from ... (wrapup_global_declarations): ... here. Return bool. (check_global_declaration_1): Split out ... (check_global_declarations): from here. (emit_debug_global_declarations): New. * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2, check_global_declaration_1, emit_debug_global_declarations): Declare. * c-decl.c (c_write_global_declarations_1): Don't create a vector of decls. Call wrapup_global_declaration_1, wrapup_global_declaration_2, check_global_declaration_1 directly. (c_write_global_declarations_2): New. (ext_block): New. (c_write_global_declarations): Call c_write_global_declarations_2. * langhooks.c (write_global_declarations): Call emit_debug_global_declarations. * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't remove decls that have DECL_RTL_SET_P. * passes.c (rest_of_decl_compilation): Invoke cgraph_varpool_finalize_decl for all but functions. 2005-09-08 Eric Botcazou * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for the result of a conversion if the new min and max cannot be compared. 2005-09-08 Andreas Krebbel * config/s390/s390.c (s390_sr_alias_set): Variable removed. (override_options): Setting s390_sr_alias_set removed. (save_fpr, save_gprs): Set alias set to vararg or frame. (restore_fpr, restore_gprs, s390_emit_prologue): Replace s390_sr_alias_set with get_frame_alias_set (). (s390_gimplify_va_arg): Replace s390_sr_alias_set with get_varargs_alias_set (). 2005-09-08 Andrew Pinski PR objc/20574 PR objc/19324 * c-parser.c (c_parser_objc_method_definition): If the next token is not "{", error out and don't start the function. 2005-09-08 Andrew Pinski * tree-vrp.c (extract_range_from_expr): Move the check for non nullness after the check for gimple invariant. 2005-09-08 Richard Kenner * tree.c (host_integerp, tree_low_cst): Correct function comment. 2005-09-08 Kazuhiro Inaoka PR target/23747 * config/m32r.md (movmemsi_internal): Canonicalize order of operands in PLUS component of template. 2005-09-07 Andreas Krebbel * reload1.c (fixup_eh_region_note): Remove assertion. (fixup_abnormal_edges): Reverted removal of call to find_many_sub_basic_blocks made on 2005-08-31. 2005-09-07 Richard Henderson * function.c (ARG_POINTER_CFA_OFFSET): Move ... * defaults.h (ARG_POINTER_CFA_OFFSET): ... here. (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c. * dwarf2out.c (struct cfa_loc): Change reg to unsigned int, rearrange for better packing. (INCOMING_FRAME_SP_OFFSET): Move to defaults.h. (lookup_cfa_1): Remove inline marker. (cfa_equal_p): Split out of ... (def_cfa_1): ... here. Use INVALID_REGNUM. (build_cfa_loc): Handle !cfa->indirect. (frame_pointer_cfa_offset): New. (dbx_reg_number): Assert register elimination performed; do leaf register remapping. (reg_loc_descriptor): Avoid calling dbx_reg_number when unused. (eliminate_reg_to_offset): New. (based_loc_descr): Remove can_use_fbreg argument. Use fbreg only for verifiably local stack frame addresses; re-base to CFA. (mem_loc_descriptor): Remove can_use_fbreg argument. (concat_loc_descriptor, loc_descriptor): Likewise. (containing_function_has_frame_base): Remove. (rtl_for_decl_location): Don't do register elimination or leaf register remapping here. (secname_for_decl): Split out from .. (add_location_or_const_value_attribute): ... here. (convert_cfa_to_loc_list): New. (compute_frame_pointer_to_cfa_displacement): New. (gen_subprogram_die): Use them. * tree.h (frame_base_decl): Remove. * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove. (prologue_stack_adjust): Remove. (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET. (adjust_stack_reference): Re-base memories to arg_pointer_rtx. (set_frame_base_location): Remove. (compute_bb_dataflow, emit_notes_in_bb): Don't call it. (dump_attrs_list, dump_dataflow_set): Use string concatenation. (vt_add_function_parameters): Don't eliminate_regs. (vt_initialize): Don't create frame_base_decl. 2005-09-07 Eric Botcazou * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended version of GNU binutils for 4.x and later. 2005-09-06 Mark Mitchell * ggc-page.c (ggc_push_context): Remove. (ggc_pop_context): Likewise. * ggc.h (ggc_push_context): Remove. (ggc_pop_context): Likewise. 2005-09-06 Saurabh Verma PR target/8973 * config/arc/arc.c (arc_output_function_epilogue): Update flags while returning from an interrupt handler. 2005-09-06 Saurabh Verma PR target/8972 * config/arc/arc.c (output_shift): Add check for loop count when optimizing. 2005-09-06 Steven Bosscher * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA form manually. (abs_replacement): Likewise. (pass_phiopt): Remove TODO_update_ssa. 2005-09-06 Jakub Jelinek PR c/23075 * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR if "return with no value, in function returning non-void" warning has been issued. * tree-cfg.c (execute_warn_function_return): Don't look at RETURN_EXPRs with TREE_NO_WARNING set. PR target/22362 * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm for internal functions doesn't use registers used by global registers variables. Use fewer register parameters if there are global register variables. 2005-09-06 Olivier Hainque Eric Botcazou PR middle-end/14997 * expr.c (expand_expr_real) : Force op0 to mem when we would be extracting outside its bit span (bitpos+bitsize larger than its mode), possible with some VIEW_CONVERT_EXPRs from Ada unchecked conversions. 2005-09-06 Steven Bosscher * tree-ssa-pre.c (try_look_through_load): New function. (compute_avail): Use it to try to look through loads for some more useful expressions. 2005-09-06 Saurabh Verma * simplify-rtx.c (simplify_binary_operation_1): Correct the condition for detecting cases like (a&a) and (a^a). 2005-09-06 Keith Besaw * common.opt: Add option ftree-vect-loop-version. * params.def: Add --param vect-max-version-checks. * doc/invoke.texi: Document ftree-vect-loop-version and --param vect-max-version-checks. * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and may_misalign_stmts and defines for accessors. * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for LOOP_VINFO_MAY_MISALIGN_STMTS. (destroy_loop_vec_info): VEC_free for LOOP_VINFO_MAY_MISALIGN_STMTS. * tree-vect-analyze.c (vect_compute_data_ref_alignment): Update documentation. (vect_update_misalignment_for_peel): New. (vect_enhance_data_refs_alignment): Update to choose loop peeling or loop versioning if appropriate for the (potentially) unaligned data references in the loop. (vect_analyze_data_refs_alignment): Remove call to vect_enhance_data_refs_alignment so the checks can be done earlier. (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment and move up call to vect_analyze_data_refs_alignment. * tree-vect-transform.c (vect_create_cond_for_align_checks): New. (vect_transform_loop): Add call to loop_version. 2005-09-06 Jakub Jelinek PR rtl-optimization/23098 * cse.c (fold_rtx_mem): Call delegitimize_address target hook. * simplify-rtx.c (constant_pool_reference_p): New function. * rtl.h (constant_pool_reference_p): New prototype. * config/i386/i386.md (pushf split, mov[sdx]f split): Use constant_pool_reference_p in condition and avoid_constant_pool_reference in preparation statements. 2005-09-06 Andreas Krebbel * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for STRICT_LOW_PART SETs. 2005-09-06 Alan Modra PR middle-end/21460 * except.c (sjlj_emit_function_enter): Find the function begin note even when it's not in first basic block. 2005-09-06 Kelley Cook * acinclude.m4: Renamed from aclocal.m4. Delete AM_LANGINFO_CODESET, AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND. * aclocal.m4: Regenerate. 2005-09-05 DJ Delorie * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling of macro. 2005-09-06 Kazu Hirata * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c, config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c, config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos. Follow spelling conventions. * doc/invoke.texi: Follow spelling conventions. 2005-09-05 J"orn Rennecke * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare. * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions. * builtins.c (expand_builtin_return_addr): Use gen_frame_mem. 2005-09-05 J"orn Rennecke PR target/23683 * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem. (output_stack_adjust): Use gen_tmp_stack_mem. (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem. (sh_set_return_address, sh_allocate_initial_value): Likewise. (sh_get_pr_initial_val): Likewise. (sh_builtin_saveregs): Use gen_frame_mem and change_address. (sh_initialize_trampoline): Likewise. Also use adjust_address. * sh.md (divsi_inv_m0): Use gen_const_mem. (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem. (movdf_i4+1): Use gen_tmp_stack_mem. (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address. (fpu_switch+2): Likewise. (movv4sf_i, movv16sf_i): Use adjust_address. (symGOT_load): Set MEM_NOTRAP_P bit. 2005-09-04 John David Anglin PR target/23721 * pa.c (emit_move_sequence): Fix typo in last change. 2005-09-03 Jakub Jelinek PR rtl-optimization/23454 * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p is true. 2005-09-03 Richard Henderson John David Anglin PR middle-end/23671 * pa.c (emit_move_sequence): Use replace_equiv_address instead of gen_rtx_MEM. 2005-09-02 Nicolas Pitre * config/arm/arm.c (arm_legitimize_address): Limit the value passed to bit_count to 32 bits. 2005-08-31 Mark Mitchell PR c++/23167 * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when generating synthetic loads from volatile lvalues. 005-09-02 Nick Clifton * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2, __ctzhi2, __clzhi2): New functions. 2005-09-02 Andrew Pinski PR middle-end/23547 * tree-nested.c (struct var_map_elt): Mark with GTY. (struct nesting_info): Mark with GTY. Mark var_map's param is struct var_map_elt. (lookup_field_for_decl): Allocate new element in GC memory. (lookup_tramp_for_decl): Likewise. (convert_nl_goto_reference): Likewise (create_nesting_tree): Allocate info in GC memory. Likewise for info->var_map. (free_nesting_tree): Free with ggc_free instead of free. (root): New static variable. (lower_nested_functions): Remove root as local variable. And zero out root at the end of the function. 2005-09-02 J"orn Rennecke PR rtl-optimization/20365 * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg to short. New member ix. (simplify_plus_minus_op_data_cmp): Break ties using ix member. (simplify_plus_minus): Initialize ix members before calling qsort. 2005-09-02 Zdenek Dvorak PR tree-optimization/23626 * tree-cfg.c (replace_uses_by): Clean up eh info. 2005-09-01 DJ Delorie * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug fprintf. 2005-09-01 David Edelsohn * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P. (rs6000_split_multireg_move): Use replace_equiv_address instead of gen_rtx_MEM. 2005-09-01 Craig Rodrigues * c-decl.c (diagnose_mismatched_decls): With -Wredundant-decls, do not issue warning for a variable definition following a declaration. 2005-09-01 Richard Henderson PR 23668 * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore conversion to CONST_VECTOR. 2005-09-01 Richard Henderson PR 23676 * reload1.c (reload_as_needed): Check !CALL_P before calling fixup_eh_region_note. * rtlanal.c (may_trap_p): SUBREG by itself cannot trap. 2005-09-01 DJ Delorie * varasm.c (output_constant): Let the target resolve conversions of addresses to non-default pointer sizes. 2005-09-01 Nicolas Pitre * config/arm/arm.c (arm_legitimize_address): Split absolute addresses to alow matching ARM pre-indexed addressing mode. (arm_override_options): Remove now irrelevant comment. 2005-09-01 Phil Edwards * config.gcc (i*86-wrs-vxworks): Update. Split out vxworksae target. * config/i386/t-vxworks: Update multilibs for VxWorks 6 and RTP mode. * config/i386/vxworks.h: Likewise. * config/i386/t-vxworksae: New file, for VxWorks AE. * config/i386/vxworksae.h: Likewise. 2005-09-01 Sebastian Pop PR tree-optimization/23410 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the sequence is not wrapping during the first step. 2005-09-01 Jakub Jelinek PR debug/7241 * dwarf2out.c (base_type_die): Compare char_type_node with TYPE_MAIN_VARIANT (type), not type. 2005-09-01 Richard Guenther PR tree-optimization/15366 * common.opt: Add -finline-functions-called-once. Put -fearly-inlining in alphabetically ordered place. * doc/invoke.texi: Document new option. * ipa-inline.c (cgraph_decide_inlining): Honour flag_inline_functions_called_once. 2005-09-01 Jakub Jelinek PR rtl-optimization/23478 * local-alloc.c (struct qty): Add n_throwing_calls_crossed field. (alloc_qty): Initialize it. (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED. (combine_regs): Combine also n_throwing_calls_crossed fields. (find_free_reg): Don't attempt to caller-save pseudos crossing calls that might throw. * global.c (struct allocno): Add throwing_calls_crossed field. (global_alloc): Revert 2005-08-22 change. Initialize throwing_calls_crossed. (find_reg): Don't attempt to caller-save pseudos crossing calls that might throw. 2005-09-01 Alan Modra PR target/23649 * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks. (mask64_operand): Reinstate code prior to 2005-06-11 change. (mask64_2_operand): Reinstate code prior to 2004-11-11 change. (and64_2_operand): Tweak to use predicate. (and_operand): Adjust for mask_operand changes. * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11. (print_operand): Likewise. (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand. (mask64_1or2_operand): Delete. * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete. * config/rs6000/rs6000.h (EXTRA_CONSTRAINT ): Revert 2005-06-11. (EXTRA_CONSTRAINT ): Pass operand mode to predicate. (EXTRA_CONSTRAINT ): Disallow mask64_operand matches. * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11. (rotldi3_internal4): Likewise. (rotldi3_internal5, rotldi3_internal5 split): Likewise. (rotldi3_internal6, rotldi3_internal6 split): Likewise. (ashldi3_internal7): Likewise. (ashldi3_internal8, ashldi3_internal8 split): Likewise. (ashldi3_internal, ashldi3_internal9 split): Likewise. (anddi3 split): Don't match mask64_operand. (anddi3_internal2): Add rlwinm. Modify 't' splitter predicate. (anddi3_internal3): Add rlwinm. Use and64_2_operand in non-cr0 splitter and match TARGET_64BIT not TARGET_POWERPC64. Modify 't' splitter predicate. (movdi_internal64 + 2): Revert 2005-06-11 change. 2005-08-31 DJ Delorie * config/m32c/m32c.c (m32c_valid_pointer_mode): New. (m32c_asm_integer): Add support for 32 bit pointers. 2005-08-31 Richard Henderson * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through component-like references for setting MEM_NOTRAP_P. * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P. * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise. 2005-08-31 Richard Henderson * expr.c (expand_expr_real_1) : Force subregs into a pseudo before applying gen_lowpart. 2005-08-31 Geoffrey Keating * doc/install.texi (Specific): Update cctools version required for full functionality. * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the linkers as -macosx_version_min. 2005-08-31 J"orn Rennecke PR target/21255 * sh.c (print_operand, %R and %S): Add handling of floating point registers, memory, constants and invalid operands. 2005-08-31 Daniel Berlin * ipa-pure-const.c: Change dump name. 2005-08-31 Uros Bizjak PR target/23570 * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint to "reg_or_0_operand". (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand". 2005-08-31 Dale Johannesen * loop-iv.c (iv_number_of_iterations): Fix overflow check for loops that count down. 2005-08-31 Richard Henderson PR rtl-opt/23601 * reload1.c (reload): Set MEM_NOTRAP_P in spill slots. (fixup_eh_region_note): New. (reload_as_needed): Call it. (fixup_abnormal_edges): Allow all throwing insns to be deleted; don't call find_many_sub_basic_blocks; call verify_flow_info. * function.c (assign_stack_local_1): Set MEM_NOTRAP_P. (keep_stack_depressed): Likewise. (assign_stack_temp_for_type): Likewise; use adjust_address_nv. 2005-08-31 Richard Henderson * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for fp return matching. 2005-08-31 Fariborz Jahanian * expr.c (expand_expr_real_1): Compare size of address mode to target's address mode size in deciding expansion of the constant address. 2005-08-31 Richard Guenther PR middle-end/23477 * expr.c (all_zeros_p): New function. (expand_expr_real_1): Handle the case of an all-zero non-addressable constructor separately. 2005-08-31 Adrian Straetling * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change arguments, adjust all callers. (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy. 2005-08-30 Richard Henderson PR target/23630 * expr.c (expand_expr_real_1) : Use gen_lowpart whenever the mode sizes match. 2005-08-31 Alan Modra * calls.c (load_register_parameters): Fix comment typo. * expr.c (emit_push_insn): Comment formatting. 2005-08-30 Ian Lance Taylor * config/i386/x-cygwin (host-cygwin): Change dependency from hosthooks-def.h to $(HOSTHOOKS_DEF_H). 2005-08-29 Geoffrey Keating * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify parts of 'vals'. 2005-08-29 Andrew Pinski PR middle-end/23408 * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the call to ggc_collect. 2005-08-29 Paolo Bonzini PR bootstrap/21268 * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the beginning. Remove $(INCLUDES) from all the rules, if following $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS). 2005-08-29 Jakub Jelinek PR middle-end/23484 * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk, fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is not constant, but maxlen is, don't set len to maxlen, rather set maxlen to len if len is a constant. 2005-08-29 Zdenek Dvorak PR tree-optimization/23475 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies and counts. 2005-08-28 Daniel Berlin Fix PR middle-end/22455 * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size. Checksum only the parts of the tree that exist for the tree code. 2005-08-28 Dale Johannesen * config/i386/i386.c (nocona_cost): Increase MOVE_RATIO. 2005-08-28 Andrew Pinski * tree-vrp.c: Remove obsolete comment in front of vrp_initialize. 2005-08-28 Richard Henderson * stor-layout.c (finalize_type_size): Revert workaround from 08-26. * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment of char_type_node. 2005-08-28 Jakub Jelinek PR ada/23593 * builtins.c (get_memory_rtx): Don't strip nops in between COMPONENT_REFs. 2005-08-27 Andrew Pinski PR middle-end/23463 * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized types. (gimplify_modify_expr): Check for zero sized types and gimplify the rhs and lhs as statements. 2005-08-27 John David Anglin PR libgcj/23508 * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame state for return address column of signal frames. 2005-08-27 David Edelsohn PR target/23539 * config/rs6000/rs6000.c (expand_block_clear): Use HImode when bytes >= 2 not bytes == 2. (expand_block_move): Same. 2005-08-27 Richard Guenther PR target/23575 * config/i386/sse.md (sse2_movsd): Add missing closing braces. 2005-08-27 Paul Brook * genrecog.c (enum decision_type): Add DT_num_insns. (struct decision_test): Add u.num_insns. (add_to_sequence): Add DT_num_insns test. (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns. (write_cond, debug_decision_2): Ditto. (change_state): Assume peep2_next_insn never fails. Remove "afterward" argument. (write afterward, write_tree): Update to match. * recog.c (peep2_current_count): New variable. (peep2_next_insn): Check it. (peephole2_optimize): Set peep2_current_count. * recog.h (peep2_current_count): Declare. 2005-08-26 Josh Conner PR middle-end/23584 * ipa-pure-const.c (check_tree): Check for volatile-ness when considering a dereference. 2005-08-27 Jakub Jelinek * rtl.h (MEM_IN_STRUCT_P): Fix comment typo. 2005-08-26 Jakub Jelinek PR rtl-optimization/23561 * builtins.c (get_memory_rtx): Add LEN argument. If MEM_EXPR is a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless at most LEN bytes long memory fits into the field. (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr, expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp, expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers. 2005-08-26 Richard Henderson PR rtl-opt/23560 * loop.c (biased_biv_may_wrap_p): New. (maybe_eliminate_biv_1): Use it to suppress non-equality comparison transformations. Delete disabled code. 2005-08-26 Ian Lance Taylor * combine.c (make_extraction): Avoid reference outside object. 2005-08-26 J"orn Rennecke * stor-layout.c (finalize_type_size): Restore behaviour for non-aggregate types to the status quo ante of the patch for pr 23467. Document why it matters. 2005-08-26 Jakub Jelinek PR c/23506 * c-common.c (c_common_nodes_and_builtins): Increase builtin_types array by one element, initialize the BT_LAST element with NULL. 2005-08-26 David Edelsohn * config/rs6000/rs6000.md (eq_compare): Only enable when optimizing for size. (plus_eqsi): Same. (compare_plus_eqsi): Same. (plus_eqsi_compare): Same. (neg_eq0): Same. (neg_eq): Same. * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to PROCESSOR_POWER4. 2005-08-26 Nick Clifton * config/v850/v850.c (ep_memory_operand): Return FALSE if TARGET_EP is not defined. * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if TARGET_EP is enabled. (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing. * config/v850/v850.md (save_all_interrupt): Only use the EP register if TARGET_EP is defined. (restore_all_interrupt): Likewise. * config/v850/lib1funcs.asm: Update functions so that the EP register is only used if __EP__ is defined. 2005-08-26 David Ung * config/mips/mips.c (mips_expand_prologue): Handle case when generating for MIPS16 and the outgoing argument area is more than SMALL_OPERAND. Use the frame pointer as temporary to generate the add instruction. 2005-08-26 Paul Woegerer * config/crx/crx.md: Make doloop_end pattern usage controllable via mloop-nesting= command line switch. Make sure the combiner cannot use doloop_end_ in an illegal way. * config/crx/crx.c: Use regs up to r6 for argument passing. Refine crx_address_cost (non cst4 displacements are expensive). * config/crx/crx.opt: Add switch for mloop-nesting=. 2005-08-26 Adrian Straetling * config/s390/s390.md: ("movstr", "*movstr"): Add patterns. (UNSPEC_MVST): New constant. 2005-08-26 Andreas Krebbel * config/s390/predicates.md ("shift_count_operand", "setmem_operand"): Reject operands containing eliminable registers. * testsuite/gcc.dg/20050825-1.c: New testcase. 2005-08-24 Paolo Bonzini Jan Hubicka * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links. 2005-08-24 Paolo Bonzini PR tree-optimization/23546 * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST and REAL_CST nodes. 2005-08-24 Pete Steinmetz * params.def (PARAM_MIN_SPEC_PROB): New. * sched-rgn.c (MIN_PROBABILITY): Delete. (compute_trg_info): Convert to PARAM_VALUE. * doc/invoke.texi (param): Document min-spec-prob. 2005-08-24 Fariborz Jahanian * config/darwin.h: define __PIC__ * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to TARGET_OS_CPP_BUILTINS macro. 2005-08-24 Paolo Bonzini * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added yesterday. 2005-08-24 Zdenek Dvorak * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument to duplicate_block. * cfghooks.c (duplicate_block): Added position where to place new block as argument. * cfghooks.h (duplicate_block): Declaration changed. * cfglayout.c (copy_bbs): Add argument after. Pass it to duplicate_block. * cfglayout.h (copy_bbs): Declaration changed. * cfgloop.h (loop_version): Declaration changed. * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass position to copy_bbs. (loop_version): Pass position to duplicate_loop_to_header_edge. Add place_after argument and position new blocks according to it. * modulo-sched.c (sms_schedule): Pass place_after argument to loop_version. * tracer.c (tail_duplicate): Pass argument to duplicate_block. * tree-cfg.c (split_edge_bb_loc): New function. (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc to determine position of new blocks. * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument to loop_version. * tree-ssa-threadupdate.c (create_block_for_threading): Pass argument to duplicate_block. * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Pass position to copy_bbs. 2005-08-24 Zdenek Dvorak * fold-const.c (ptr_difference_const): Use cst_and_fits_in_hwi instead of host_integerp. 2005-08-24 Paolo Bonzini * config/darwin.c (gen_pic_offset): New. (machopic_indirect_data_reference, machopic_legitimize_pic_address): Use it. 2005-08-23 Zdenek Dvorak PR tree-optimization/23486 * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals. 2005-08-23 Phil Edwards * config.gcc (*-*-vxworks*): Update tm_file, add extra_options, remove use_collect2. (powerpc-wrs-vxworks): Update, split out *-*-vxworksae target. * target-def.h (TARGET_HAVE_CTORS_DTORS): Allow target configuration files to override the default value. * config/t-vxworks: Remove INSTALL_ASSERT_H. Define STMP_FIXPROTO, EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS. * config/vx-common.h: New file, split out from... * config/vxworks.h: here. Update for VxWorks 6.x and RTP mode. * config/vxworksae.h: New file, for VxWorks AE. * config/vxworks.opt: New file. * config/vxlib.c: Update for VxWorks 6. * config/rs6000/t-vxworks (MULTILIB_OPTIONS): New list. Adjust other MULTILIB_* variables appropriately. (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS): Correct from t-ppccomm. * config/rs6000/t-vxworksae: New file, adjust multilibs for AE. * config/rs6000/vxworks.h: Update for VxWorks 6. * config/rs6000/vxworksae.h: New file, mostly placeholder for now. 2005-08-23 Andrew Pinski PR target/20799 * config/darwin.c (machopic_select_section): Remove the hack to mark "::operator new" and "::operator delete" for coalescing even though they are not weak. 2005-08-24 Alan Modra * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch. * configure: Regenerate. 2005-08-23 Paolo Bonzini PR middle-end/23517 * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert between vectors. * convert.c (convert_to_integer, convert_to_vector): Likewise. * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1): Likewise. 2005-08-23 Paolo Bonzini * config/rs6000/predicates.md (equality_operator): New. * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for comparison with a large constant. 2005-08-23 Mark Mitchell * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT. 2005-08-23 J"orn Rennecke * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp registers is even, and we have a hardware double precision fp, align the buffer. (sh_gimplify_va_arg_expr): For floating point arguments, consider size of current argument when checking if argument was passed in registers. * sh.c (sh_attr_renesas_p): Handle error_mark_node. PR middle-end/23467 * stor-layout.c (finalize_type_size): Dont override existing alignment with a smaller alignment from the mode. 2005-08-23 Sebastian Pop * lambda-code.c (lambda_vector_lexico_pos): Moved... * lambda.h (lambda_vector_lexico_pos): ... here. * tree-data-ref.c (build_classic_dist_vector): Return false when the distance vector is lexicographically negative. 2005-08-23 Sebastian Pop PR tree-optimization/23511 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE. 2005-08-23 Jakub Jelinek PR tree-optimization/22043 * tree.h (count_type_elements): Add ALLOW_FLEXARR argument. * expr.c (count_type_elements): Add ALLOW_FLEXARR argument. If ALLOW_FLEXARR, handle types ending with flexible array member. Pass false as second argument to recursive count_type_elements calls. (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second argument to count_type_elements call. * tree-sra.c (decide_block_copy): Likewise. * gimplify.c (gimplify_init_constructor): If num_type_elements < 0 for a constant-sized object, set cleared as well. Pass true as second argument to count_type_elements call. 2005-08-23 Alan Modra PR target/21571 * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename from legitimate_small_data_p, and make global. Update use. Remove forward declaration. * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p): Declare. * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems. 2005-08-23 David Edelsohn * config/rs6000/rs6000.md (eq): Use output operand instead of scratch intermediates. (eq_compare): Same. (neg_eq0): New. (neg_eq): Convert to define_insn_and_split. 2005-08-23 Alan Modra PR target/23070 * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to stdarg functions, set/clear the fp marker even when no variable args are passed. * config/rs6000/sysv4.opt (mprototype): Describe. 2005-08-22 Jakub Jelinek PR rtl-optimization/23478 * regs.h (reg_info): Add throw_calls_crossed. (REG_N_THROWING_CALLS_CROSSED): Define. * flow.c (allocate_reg_life_data): Initialize REG_N_THROWING_CALLS_CROSSED. (propagate_one_insn, attempt_auto_inc): Update REG_N_THROWING_CALLS_CROSSED. * global.c (global_alloc): Don't allocate pseudos across calls that may throw. 2005-08-22 Andrew Pinski PR c/18715 * c-common.c (c_do_switch_warnings): Look for a node where the enum's value is inbetween the range if we did not find an exact match. 2005-08-22 Aldy Hernandez * doc/invoke.texi (Option Summary): Add ms1 options. * doc/extend.texi: Document interrupt handler attribute for ms1. * doc/md.texi: Document ms1 constraints. * config.gcc: Add ms1-*-elf. * config/ms1/ms1.h: New. * config/ms1/ms1.c: New. * config/ms1/ms1.md: New. * config/ms1/ms1-protos.h: New. * config/ms1/ABI.txt: New. * config/ms1/crti.asm: New. * config/ms1/crtn.asm: New. * config/ms1/lib2extra-funcs.c: New. * config/ms1/t-ms1: New. * config/ms1/ms1.opt: New. 2005-08-22 Ira Rosen * config/rs6000/altivec.md (xorv4sf3): New. (negv4sf2, neg2): Likewise. 2005-08-21 H.J. Lu PR target/23485 * config/ia64/ia64.md (divsi3): Check divide by zero. (udivsi3): Likewise. (divdi3): Likewise. (udivdi3): Likewise. 2005-08-21 Jakub Jelinek * simplify-rtx.c (simplify_immed_subreg) : Only clear up to elem_bitsize bits, not max_bitsize. 2005-08-21 Sebastian Pop PR tree-optimization/23433 * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a REAL_CST when the type is SCALAR_FLOAT_TYPE_P. 2005-08-21 Sebastian Pop PR tree-optimization/23434 * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when the iteration bound is not an INTEGER_CST. 2005-08-21 Dorit Nuzman * tree-vect-transform.c (get_initial_def_for_reduction): Set need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to NULL if need_epilog_adjust is false. (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed. Case 3 always peels first itration, not just for PLUS case, and no need to use scalar_initial_def here. Create an epilog adjustment only if scalar_initial_def is not NULL. (vectorizable_reduction): Remove assert. 2005-08-20 H.J. Lu PR target/23485 * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero. (__moddi3): Likewise. (__udivdi3): Likewise. (__umoddi3): Likewise. (__divsi3): Likewise. (__modsi3): Likewise. (__udivsi3): Likewise. (__umodsi3): Likewise. 2005-08-20 Jakub Jelinek * tree-pass.h (TDF_GRAPH): Define. * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all". * passes.c (finish_optimization_passes): Only call finish_graph_dump_file if TDF_GRAPH is set. (execute_one_pass): Only call clean_graph_dump_file if dump_file != NULL. Set TDF_GRAPH bit. (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set. 2005-08-20 Richard Earnshaw * arm.h (arm_stack_offsets): Add locals_base field. * arm.c (arm_get_frame_offsets): Compute it. (thumb_compute_initial_elimination offset): Make the Thumb frame pointer point to the base of the local variables. (thumb_expand_prologue): Update accordingly. (thumb_expand_epilogue): Likewise. * arm.md (thumb_movhi_clobber): Make this insn a define_expand. Change mode of clobbered scratch to DImode. Handle a case that's known to need this. 2005-08-19 David Edelsohn * config/rs6000/rs6000.md (gt0): Delete. (gt0_compare): Delete. (neg_gt0): Delete. 2005-08-19 Eric Christopher * optabs.h: Change CTI_ to COI_. * optabs.c: Ditto. 2005-08-19 James E Wilson * builtins.c (expand_builtin_return_addr): Set current_function_accesses_prior_frames when count != 0. Use frame_pointer_rtx when count == 0. * function.h (struct function): Add accesses_prior_frames field. (current_function_accesses_prior_frames): Define. * reload1.c (init_elim_table): Check current_function_accesses_prior_frames. * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs. 2005-08-19 Diego Novillo * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change indicator. Return true if the flowgraph changed during cleanup. 2005-08-19 Diego Novillo PR 23476 * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the conditional expression before testing its value. 2005-08-19 Diego Novillo * doc/invoke.texi: Fix documentation for -ftree-dominator-opts. 2005-08-19 Devang Patel PR tree-optimization/23048 * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as third parameter. Check whether latch is dominated by exit block or not. (if_convertible_loop_p): Supply exit block itself to if_convertible_bb_p. 2005-08-19 Richard Earnshaw PR target/23473 * arm.md (arm_load_pic_register): Change argument to the mask of saved registers. Call thumb_find_work_register if we need a scratch register on Thumb. (arm_expand_prologue): Pass empty register set to arm_load_pic_register. (thumb_expand_prologue): Pass live_regs_mask directly to arm_load_pic_register. * arm-protos.h (arm_load_pic_register): Update prototype. 2005-08-19 J"orn Rennecke * sh.c (find_sole_member): New function. (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch if the record's alignment is larger than the size of its only member. 2005-08-19 Richard Earnshaw PR target/23436 * arm.c (thumb_legitimize_reload_address): New function. * arm-protos.h (thumb_legitimize_reload_address): Add prototype. * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it. 2005-08-19 Paul Woegerer * config/crx/crx.c: Implement crx_decompose_address. Reject symbolic displacements since CRX register relative adressing mode can't handle unsigned 32-bit values as displacements. * config/crx/crx.h: Simplify definitions, remove redundant parenthesis and obsolete macros. * config/crx/crx.opt: Add new switch for debugging addresses. * config/crx/crx-protos.h: Add new declarations for above. 2005-08-19 Andrew Pinski PR middle-end/20624 * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by looking past it. 2005-08-18 Kaveh R. Ghazi * collect2.c (dup2): Delete. * configure.ac: Don't check for dup2. * config.in, configure: Regenerate. 2005-08-18 J"orn Rennecke * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE record with the type of its only member. 2005-08-18 David Edelsohn * config/rs6000/rs6000.md (ltu_compare): Convert to define_insn_and_split. (plus_ltu_compare): Same. (gtu_compare): Same. (plus_gtu_compare): Same. 2005-08-18 Dorit Nuzman PR tree-optimization/22228 * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to todo_flags_start. * tree-vect-transform.c (vect_transform_loop): Mark the variables that are recorded in vect_vnames_to_rename for renaming. * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap. (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming in vect_vnames_to_rename. (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap. * tree-vectorizer.h (vect_vnames_to_rename): New extern variable. 2005-08-18 Jan Hubicka PR c++/22034 * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug info only for local statics, not for member variables. 2005-08-18 Volker Reichelt * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo. 2005-08-18 Volker Reichelt * c-typeck.c (designator_errorneous): Rename to designator_erroneous. 2005-08-18 Andrew Pinski PR middle-end/16045 * builtins.c (fold_builtin): Create a new NOP_EXPR all the time. 2005-08-17 James E Wilson * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in array size check. 2005-08-17 David Edelsohn * config/rs6000/rs6000.md (leu): Convert to mode macro. (leu_compare): Same. (plus_leu): Same. (neg_leu): Same. (and_neg_leu_compare): Same. (plus_ltu): Same. (geu): Same. (geu_compare): Same. (plus_geu): Same. (neg_geu): Same. (and_neg_geu): Same. (plus_gt): Same. (gtu_compare): Same. (plus_gtu): Same. 2005-08-17 Erik Christiansen * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos. Move call_table_data to end. Delete spurious .text. (callt_save_all_interrupt): Fix comment typo. 2005-08-17 James E Wilson Kevin Winchester PR target/21684 * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0. 2005-08-17 Uros Bizjak PR target/23268 * config/i386/i386.md ("*fist2_1"): New pattern. ("lrint2"): Change expander to use "*fist2_1" pattern. 2005-08-17 J"orn Rennecke * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE record with the type of its only member if the modes don't match. * varasm.c (decode_reg_name): Skip empty additional register names. 2005-08-16 Zdenek Dvorak * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name, lsm_tmp_name_length): New. (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions. (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp". 2005-08-16 Ulrich Weigand Andreas Krebbel * config.gcc: Added z9-109 switch. * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl", "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi", "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other", "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf", "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable for "z9_109" cpu attribute. * config/s390/s390.c (z9_109_cost): New processor cost structure. (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros. (s390_handle_arch_option): Added z9-109 switch. (override_options): Set respective cost function for z9-109. (s390_const_ok_for_constraint_p): New constraints Os, Op, On. (legitimate_reload_constant_p): Accept extended immediates. (print_operand): Three new output modifiers added: k, m and o. (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990. (s390_output_mi_thunk): Use extended immediate when possible. * config/s390/s390.h (processor_flags): Added PF_EXTIMM. (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros. (CONSTRAINT_LEN): Added length of O constraint. (CLZ_DEFINED_VALUE_AT_ZERO): Definition added. * config/s390/s390.md ("cpu"): New value z9_109 added. ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm", "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm", "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm", "*zero_extendsi2_extimm", "*anddi3_extimm", "*iordi3_extimm", "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns. ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2", "*zero_extendsi2_64", "zero_extendqihi2", "*zero_extendqihi2_64", "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM. ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu", "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc", "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc", "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3", "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc", "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly", "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended immediates. ("extenddi2", "extendsi2", "zero_extenddi2", "zero_extendsi2"): Allow memory operands and don't manually emit insns for TARGET_EXTIMM. 2005-08-17 Andreas Krebbel * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options. 2005-08-17 Nick Clifton * config/stormy16/stormy16.c (xstormy16_encode_section_info): Call default_encode_section_info. 2005-08-17 Steven Bosscher PR tree-optimization/21574 * tree-ssa-ccp.c (likely_value): If the right hand side is a constant, return CONSTANT. (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal. (ccp_fold, visit_assignment): Likewise. (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way. 2005-08-16 James A. Morrison * c-typeck.c (build_function_call): Call fold_buildN_initializer or fold_buildN instead of buildN then fold_initializer or fold. (build_unary_op): Likewise. (build_binary_op): Likewise. * fold-const.c (fold_initializer): Remove. (fold_build1_initializer): New function. (fold_build2_initializer): New function. (fold_build3_initializer): New function. * tree.h (fold_initializer): Remove. (fold_build1_initializer): New function. (fold_build2_initializer): New function. (fold_build3_initializer): New function. 2005-08-16 James A. Morrison * fold-const.c (optimize_bit_field_compare): Remove extra fold call. (try_move_mult_to_index): Call fold_build2 instead of build2. (fold_binary): Don't call fold after calls to try_move_mult_to_index. * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of fold_binary_to_constant. (infer_loop_bounds_from_undefined): Call fold_build2 instead of fold (build. * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to check if A == gcd (A, B). Remove TYPE argument. (analyze_offset) Use fold_build2 instead of fold (build. (create_data_ref): Likewise. (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p. * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2 then fold. 2005-08-17 Kelley Cook * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c, ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address. 2005-08-16 Andrew Pinski PR tree-opt/23402 * gimplify.c (zero_sized_type): New function. (gimplify_modify_expr_rhs): If we have a zero sized type, replace the statement with an empty statement. 2005-08-16 H.J. Lu * config/i386/crtfastmath.c (set_fast_math): Add "=m" for fxsave. 2005-08-16 Ian Lance Taylor * doc/tm.texi (Label Output): Correct typo. 2005-08-16 Steven Bosscher PR target/23376 * loop-unroll.c (analyze_insn_to_expand_var): Make sure that force_operand will work later on using have_insn_for. 2005-08-16 Volker Reichelt * fold-const.c (tree_expr_nonnegative_p): Regroup cases. 2005-08-16 Ian Lance Taylor PR c++/23337 * gimplify.c (gimplify_init_ctor_eval): If we see an element of vector type, don't try to construct it element by element. Add an assertion that we use a FIELD_DECL when building a COMPONENT_REF. 2005-08-16 Volker Reichelt * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR. 2005-08-16 Geoffrey Keating * doc/invoke.texi (Precompiled Headers): Document some more options which are known to be safe. 2005-08-16 James E Wilson PR tree-optimization/21105 * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in TREE_OVERFLOW check. 2005-08-16 David Edelsohn * config/rs6000/rs6000.md (ltu): Convert to mode macro. (neg_ltu): Same. (gtu): Same. (neg_gtu): Same. 2005-08-16 Volker Reichelt * builtins.c (expand_builtin_strcat): Remove superfluous call to fold. (fold_builtin_isdigit): Use fold_buildN. (build_function_call_expr): Likewise. * c-typeck.c (c_finish_loop): Likewise. 2005-08-16 J"orn Rennecke Richard Shann PR middle-end/20396: * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account. 2005-08-16 Sebastian Pop * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment. 2005-08-15 Richard Earnshaw PR target/23355 * arm.c (thumb_compute_save_reg_mask): Use similar logic to arm_compure_save_reg0_reg12_mask to determine when the PIC register must be saved. 2005-08-15 John David Anglin PR middle-end/23369 * fold-const.c (build_range_check): Disable optimization for function pointer expressions on targets that require function pointer canonicalization. 2005-08-15 Ulrich Weigand * simplify-rtx.c (simplify_const_relational_operation): When extracting arguments of a COMPARE, recompute the mode as well. 2005-08-15 Ian Lance Taylor * tree.c (build_string): Mark tree CONSTANT and INVARIANT. 2005-08-15 DJ Delorie * config/m32c/mov.md (movqi_op): Immediates can't be moved to the stack. (movsi_splittable): Allow, but split, moves to the stack. * config/m32c/m32c.c (m32c_split_move): Always split moves to the stack. 2005-08-15 Kaveh R. Ghazi * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete. * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR. * system.h (HOST_PTR_PRINTF): Don't define, poison it. * bitmap.c, c-decl.c, config/i386/i386-interix.h, config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c: Delete HOST_PTR_PRINTF. * configure, config.in: Regenerate. 2005-08-15 David Edelsohn * config/rs6000/rs6000.md (QHSI): New mode macro. (wd): Extend mode attr for QImode and HImode (dbits): New mode attr. (zero_extenddi2): Convert to mode macro. 2005-08-15 Steve Ellcey PR target/21841 * doc/invoke.texi (-mgnu-ld): Update description. (-mhp-ld): Ditto. 2005-08-15 Sebastian Pop PR 23391 * Makefile.in (tree-chrec.o): Depends on real.h. * tree-chrec.c: Include real.h. (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly, chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P. * tree-scalar-evolution.c (add_to_evolution_1, interpret_rhs_modify_expr): Ditto. 2005-08-15 Sebastian Pop PR 23386 * tree-data-ref.c (estimate_niter_from_size_of_data): When step is negative compute the estimation from init downwards to zero. 2005-08-14 James A. Morrison * fold-const (fold_binary): Call fold_build2 instead of fold (build. 2005-08-14 Ulrich Weigand * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P' constraint. (legitimate_reload_constant_p): Fix handling of lliXX operands. Accept double-word constants that can be split. * config/s390/s390.md ("movti"): Use 'P' constraint. ("*movdi_31", "*movdf_31"): Likewise. 2005-08-14 Daniel Berlin Fix PR tree-optimization/22615 * tree-ssa-structalias.c (solution_set_add): Handle first_vi_for_offset returning NULL. (do_da_constraint): Ditto. (do_sd_constraint): Ditto. (do_ds_constraint): Ditto (find_func_aliases): Ditto. (build_constraint_graph): RHS is allowed be ANYTHING. (first_vi_for_offset): Return NULL if we couldn't find anything at the offset. 2005-08-14 Ulrich Weigand * config/s390/s390.c (s390_canonicalize_comparison): Prefer register over memory as first operand. 2005-08-14 H.J. Lu PR target/23360 * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is available for setting it. 2005-08-14 Ira Rosen PR tree-optimization/23320 * tree-data-ref.c (base_addr_differ_p): Add comment. Check data-refs' types instead of base object nullness. Add check for pointer type data-refs before first location comparison. Remove assert. 2005-08-14 Andreas Schwab * doc/md.texi (Machine Constraints): Fix misplaced @end table. 2005-08-13 James E Wilson * doc/cpp.texi (__SSP__, __SSP_ALL__): Document. * doc/invoke.texi (-Wstack-protector, -fstack-protector, -fstack-protector-all, --param ssp-buffer-size): Document. (-Wvariadic-macros): Alphabetize. (-fsched-stalled-insns-dep): Add missing 'f'. * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect macros. 2005-08-13 David Edelsohn * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed or indirect address operand. (EXTRA_ADDRESS_CONSTRAINT): New. * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a". 2005-08-13 Sebastian Pop PR tree-optimization/22236 * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print successors and predecessors. * tree-chrec.c (chrec_convert): Before converting, check that sequences don't wrap. * tree-data-ref.c (compute_estimated_nb_iterations): Moved ... (analyze_array): Extern. (find_data_references_in_loop): Remove call to compute_estimated_nb_iterations. * tree-data-ref.h (analyze_array): Declared. * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands): Fix documentation. * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter. * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry condition. * tree-ssa-loop-ivcanon.c: Fix documentation. * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note. * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here. (infer_loop_bounds_from_undefined): New. (estimate_numbers_of_iterations_loop): Use infer_loop_bounds_from_undefined. (used_in_pointer_arithmetic_p): New. (scev_probably_wraps_p): Pass an extra parameter. Call used_in_pointer_arithmetic_p. Check that AT_STMT is not null. (convert_step): Fix documentation. * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters. Use initial_condition_in_loop_num and evolution_part_in_loop_num instead of CHREC_LEFT and CHREC_RIGHT. Adjust the call to scev_probably_wraps_p. 2005-08-13 Ulrich Weigand * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change. (s390_register_info): Ignore clobbered_regs information for fixed registers, and only fixed registers. (s390_init_frame_layout): Remove redundant call. 2005-08-12 Gerald Pfeifer * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to description of -Wold-style-casts. 2005-08-12 Andreas Krebbel Jakub Jelinek * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define. * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added. * config/s390/s390.c (print_operand): New output modifier 'G' added. (get_thread_pointer): Renamed to s390_get_thread_pointer. * config/s390/s390.md (stack_protect_set, stack_protect_test): If TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))). (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. ("stack_protect_set", "stack_protect_test"): New expanders. ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi", "stack_protect_testdi"): New insn definitions. 2005-08-12 Andreas Krebbel * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K. 2005-08-12 Paul Brook * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set. 2005-08-12 Andreas Krebbel * config/s390/predicates.md (setmem_operand): New predicate. (shift_count_operand): Accept ANDs with special constants as operand. * config/s390/s390.c (print_shift_count_operand): Skip ANDs with special constants. * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced shift_count_operand with setmem_operand. 2005-08-12 Andreas Krebbel * config/s390/s390.c (s390_extract_part, s390_single_part): Type cast added. (s390_const_ok_for_constraint_p): Added SImode to the N constraint. (s390_output_mi_thunk): Don't use lg on 31 bit. * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy. ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH. 2005-08-12 Andreas Krebbel * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros. (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p, s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue, s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P with one of the new macros. 2005-08-12 Andreas Krebbel * config/s390/s390.c (s390_split_branches, s390_init_frame_layout): Don't set save_return_addr_p. (s390_register_info): Make clobbered_regs not depending on save_return_addr_p. 2005-08-12 Kaz Kojima * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }. (LINK_COMMAND_SPEC): Add space after %(link_ssp). 2005-08-11 James E. Wilson * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New. 2005-08-11 Jakub Jelinek * dwarf2out.c (add_location_or_const_value_attribute): Prefer locations gathered by var-tracking in single entry loc_list over loc_descriptor_from_tree. * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument, pass it down to loc_descriptor. (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor. (containing_function_has_frame_base): Move earlier in the file. (loc_descriptor_from_tree_1): Use containing_function_has_frame_base instead of always assuming fbreg can't be used. 2005-08-11 David Edelsohn * config/rs6000/altivec.md: Change constraint "m" to "Z". * config/rs6000/predicates.md (indexed_or_indirect_operand): Accept address wrapped in AND for Altivec. * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Strip AND wrapping offset address for Altivec. 2005-08-11 Richard Henderson PR middle-end/23312 * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE before using TYPE_IS_SIZETYPE. 2005-08-11 Richard Henderson PR target/22225 * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for insn types not present on ev4. (alphaev5_insn_pipe): Similarly. 2005-08-11 Richard Earnshaw PR target/23250 * arm.c (arm_override_options): If the user has selected callee-super- interworking, then enable normal interworking. 2005-08-11 Rainer Orth * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before redefinition. 2005-08-11 Wu Zhou * doc/rtl.texi: Fix two typos. 2005-08-11 Richard Guenther PR target/23289 * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle cases where we call to/from functions returning void. 2005-08-10 James A. Morrison PR c++/23225 * tree.c (build_pointer_type_for_mode): Robustify. 2005-08-10 James E Wilson * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete. * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to "cum->". 2005-08-10 Eric Christopher * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite. * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use V2DFmode. 2005-08-10 Andrew Pinski PR target/21887 * config/darwin.c (machopic_indirect_data_reference): Use a new register for the high part when generating dynamic-no-pic code. 2005-08-10 H.J. Lu * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file. (x86_64-*-linux*): Likewise. * config/i386/crtfastmath.c: New file. * config/i386/t-crtfm: Likewise. * config/i386/linux.h (ENDFILE_SPEC): New. * config/i386/linux64.h (ENDFILE_SPEC): Likewise. * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o. 2005-08-10 Dorit Nuzman * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus): (vec_shl, vec_shr): Document new operations. * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment. 2005-08-10 David Edelsohn * config/rs6000/predicates.md (indexed_or_indirect_address): New. * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and change predicate to indexed_or_indirect_address. 2005-08-10 Richard Sandiford * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases. * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv, __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4 and __aeabi_uwrite8. * config/arm/unaligned-funcs.c: New file. * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c. 2005-08-09 Paolo Bonzini * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks): Add dump. * cfglayout.c (pass_insn_locators_initialize): Add dump. * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): Add dump. * except.c (pass_convert_to_eh_region_ranges): Add dump. * final.c (pass_shorten_branches): Add dump. * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump. (pass_life): Rename dump. (rest_of_handle_flow2): Remove initial verify_flow_info. * function.c (pass_instantiate_virtual_regs): Add dump. * integrate.c (pass_initial_value_sets): Add dump. * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump. * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump. (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop, pass_rtl_unroll_and_peel_loops): Rename dump and add gate. (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop, gate_rtl_unrool_and_peel_loops): New. (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops, rtl_doloop): Do not look at flags. * mode-switching.c (pass_mode_switching): Add dump. * recog.c (pass_split_all_insns, pass_split_for_shorten_branches, pass_split_before_regstack): Add dump. * regmove.c (pass_stack_adjustments): Add dump. * tree-optimize.c (pass_fixup_cfg): Add dump. 2005-08-10 Kazuhiro Inaoka PR 23309 * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when deciding which instruction sequence to use. 2005-08-09 Dorit Nuzman * tree-vect-transform.c (vect_create_epilog_for_reduction): Set BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs. 2005-08-09 Richard Guenther * c-common.c (builtin_function_2): Remove. (def_builtin_1): New function. (c_common_nodes_and_builtins): Use def_builtin_1 to build builtin functions. 2005-08-09 Jie Zhang * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define. * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define. * config/bfin/bfin.c (bfin_return_in_memory): Update to really match Visual DSP. 2005-08-09 James A. Morrison * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use fold_binary instead of fold_build2 since we don't care about the resulting tree. (loop_niter_by_eval): Likewise. (compare_trees): Likewise. (proved_non_wrapping_p): Likewise. 2005-08-09 James A. Morrison PR c/23161 PR c/23165 * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see if the if is really empty. 2005-08-09 Steven Bosscher PR tree-optimization/23234 * tree-ssa-math-opts.c (place_reciprocal): New enum. (execute_cse_reciprocals_1): Replace the 'phi' argument with an argument of the new enum. (execute_cse_reciprocals): Add reciprocals for function arguments on the unique successor edge of the entry block. Update other calls to execute_cse_reciprocals_1. 2005-08-08 Richard Henderson PR 22439 * gimplify.c (gimplify_one_sizepos): Preserve the original type. 2005-08-08 Bob Wilson * expr.c (write_complex_part): Return after handling MEM. 2005-08-08 Josh Conner PR rtl-optimization/23241 * combine.c (simplify_comparison): Fix error in determining whether to lift a subreg from comparison. 2005-08-08 David Edelsohn PR target/18506 * config/rs6000/altivec.md (vec_init): New. (vec_set): New. (vec_extract): New. * config/rs6000/rs6000.c (rs6000_expand_vector_init): New. (rs6000_expand_vector_set): New. (rs6000_expand_vector_extract): New. (rs6000_legitimate_offset_address_p): Offset addresses are valid for Altivec modes before reload. (altivec_expand_vec_init_builtin): New. (get_element_number): New. (altivec_expand_vec_set_builtin): New. (altivec_expand_vec_ext_builtin): New. (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext builtins. (altivec_init_builtins): Init vec_init, vec_set, and vec_ext builtins. * config/rs6000/rs6000.h (rs6000_builtins): Add ALTIVEC_BUILTIN_VEC_INIT_, ALTIVEC_BUILTIN_VEC_SET_, ALTIVEC_BUILTIN_VEC_EXT_. * config/rs6000/rs6000-protos.h: Declare new functions. 2005-08-08 Jan Hubicka * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode. (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode. * i386.md (movdi*): Use pic_32bit_operand. * predicates.md (pic_32bit_operand): New. 2005-08-08 Nathan Sidwell PR c++/21166 * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible. 2005-08-07 James A. Morrison * tree-vrp.c (simplify_div_or_mod_using_range): Use build2. (test_for_singularity): Use fold_build2. 2005-08-07 John David Anglin * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound. 2005-08-07 Danny Smith * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define. (COMMON_ASM_OP) Define. * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED (ix86_encode_section_info): Likewise. (TARGET_ENCODE_SECTION_INFO): Conditionally define as SUBTARGET_ENCODE_SECTION_INFO. 2005-08-06 Richard Henderson PR 21894 * tree-nested.c (convert_local_reference): Save and restore val_only around component_ref and friends. Clear walk_subtrees by default. 2005-08-06 Peter O'Gorman PR 21366 * gcc.c (process_command): Check the argument to -b has a dash. * doc/invoke.texi: Update -b and -V docs. 2005-08-06 James E Wilson * config/mips/cross64.h, config/mips/t-cross64: Delete. 2005-08-06 Michael Matz * genattrtab.c (write_attr_get, write_attr_case): Use insn_code member only if only one insn is associated with the value. 2005-08-06 Nick Clifton * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100): New define. (ASM_OUTPUT_LABELREF): Delete - it is no longer needed. * config/stormy16/stormy16.c (xstormy16_below100_symbol): Check symbol flags instead of symbol name mangling. (xstormy16_asm_output_aligned_common): Likewise. Also simplify code since the bss100_section cass is the only case where the below100 code will be triggered. (xstormy16_encode_section_info): Encode below100 attribute using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling the name. (xstormy16_strip_name_encoding): Delete - this function is no longer needed. (TARGET_STRIP_NAME_ENCODING): Undefine. * config/stormy16/stormy16-protos.h: Delete prototype for xstormy16_strip_name_encoding. 2005-08-06 Kazu Hirata * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c, config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c, tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h, config/linux.h, config/alpha/alpha.h, config/alpha/linux.h, config/alpha/predicates.md, config/arc/arc.h, config/arm/arm.h, config/arm/ieee754-df.S, config/arm/ieee754-sf.S, config/bfin/bfin.c, config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c, config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h, config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/mips/mips.c, config/mips/mips.h, config/mips/openbsd.h, config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.h, config/rs6000/linux-unwind.h, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c, config/sh/sh.c, config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h, config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h, doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc typos. Follow spelling conventions. 2005-08-06 Joseph S. Myers PR c/23113 * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start. Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR specially. Check for side effects only for COND_EXPR. * c-typeck.c (c_finish_stmt_expr): Mark statement expression return with TREE_NO_WARNING. 2005-08-06 Richard Sandiford PR rtl-optimization/23233 * loop.c (combine_movables): Require the modes to be the same. (move_movables): Remove handling of cases where the replacement had a different mode to the original. 2005-08-05 James A. Morrison PR tree-optimization/23128 * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or subtraction wrap, and set TREE_OVERFLOW if they do. 2005-08-05 Richard Henderson PR 21728 * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into FORCED_LABEL labels. 2005-08-05 J"orn Rennecke PR middle-end/23135 * reload.c (find_reloads_subreg_address): Pass down TYPE unchanged. Change all callers except find_reloads_toplev. 2005-08-05 Michael Matz * genattrtab.c (current_alternative_string): Remove. (SIMPLIFY_ALTERNATIVE): Ditto. (attr_alt_bit_p): Ditto. (alternative_name): Make const char *. (evaluate_eq_attr): Remove use of above things. (simplify_test_exp): Ditto. (simplify_test_exp ): Guard for insn_code < 0 . (simplify_test_exp ): Correct typo (test 'right' not 'left'). 2005-08-04 James E Wilson * config/ptx4.h, config/sol2.h, config/arm/freebsd.h, config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h, config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h, config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h (LINK_SPEC): Delete useless %{Wl,*:%*} item. 2005-08-04 Richard Henderson PR 21529 * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New. * params.h (SRA_MAX_STRUCTURE_COUNT): New. * tree-sra.c (decide_block_copy): Use it. Disable element copy if we'd have to instantiate too many members. 2005-08-04 Richard Henderson PR 21291 * tree-outof-ssa.c (coalesce_asm_operands): New. (coalesce_ssa_name): Use it. Split out ... (coalesce_phi_operands, coalesce_result_decls): ... these. 2005-08-04 Paul Brook * read-rtl.c (read_quoted_string): Break if EOF. 2005-08-04 Andrew Pinski * tree.h (fold_build1): Change to macro and call fold_build1_stat. (fold_build2): Likewise. (fold_build3): Likewise. (fold_build1_stat): New function prototype. (fold_build2_stat): Likewise. (fold_build3_stat): Likewise. * fold-const.c (fold_build1): Rename to .. (fold_build1_stat): this. Add MEM_STAT_DECL. Pass the mem stats through to build1_stat. (fold_build2): Rename to .. (fold_build2_stat): this. Add MEM_STAT_DECL. Pass the mem stats through to build2_stat. (fold_build3): Rename to .. (fold_build3_stat): this. Add MEM_STAT_DECL. Pass the mem stats through to build3_stat. 2005-08-04 David Edelsohn Ian Lance Taylor * function.c (assign_stack_local_1): Do not correct stack slot address if allocation size is smaller than mode size. 2005-08-04 Diego Novillo PR 22037 * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename. (tree_merge_blocks): Propagate anything allowed by may_propagate_copy. Clarify documentation. * passes.c (execute_todo): If cleanup_tree_cfg invalidated the SSA form, schedule an update if necessary. 2005-08-04 Gerald Pfeifer * doc/install.texi (Binaries): Remove broken link to Sinix/Reliant Unix binaries. 2005-08-03 Richard Henderson PR 23221 * function.c (stack_protect_epilogue): Export. * tree.h (stack_protect_epilogue): Declare. * calls.c (expand_call): Call it. 2005-08-03 Eric Christopher * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all. * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp spec. 2005-08-04 Jan Hubicka * profile.c (branch_prob): Split edges with goto locus on them to get proper line counts. * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any. 2005-08-03 Paul Brook * function.c (assign_parms): Round current_function_args_size to PARM_BOUNDARY, not STACK_BOUNDARY. 2005-08-03 Geoffrey Keating * config/i386/i386.c (x86_elf_aligned_common) (x86_output_aligned_bss): Don't try to use symbols that aren't defined. 2005-08-03 Zdenek Dvorak PR tree-optimization/23157 * tree-scalar-evolution.c (scev_const_prop): Unshare trees before emitting them. 2005-08-03 Volker Reichelt PR tree-optimization/19899 * Makefile.in (tree-scalar-evolution.o): Add real.h. * tree-scalar-evolution.c: Include real.h. (add_to_evolution): Build constant -1 of correct type. 2005-08-03 Jan Hubicka * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag. * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case profile updating for complette unrolling. * loop-unroll.c (peel_loop_completely): Use it. * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. (tree_unroll_loops_completely): Disable code growing unrolling of cold loops. 2005-08-03 Paul Brook * combine.c (can_change_dest_mode): New function. (try_combine, simplify_set): Use it. 2005-08-03 Eric Botcazou * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force TFmode to BLKmode. 2005-08-03 Gerald Pfeifer * doc/install.texi (Specific): Adjust link to openavr.org. (Specific): Remove broken reference to GCC 2.8.1 for OS/2. (Binaries): Adjust HP-UX Porting Center link. (Binaries): Adjust Free Software Foundation ordering link. 2005-08-03 Andrew Pinski * convert.c (convert_to_integer): Use fold_build1 instead of build1 when converting an integer to an integer. 2005-08-02 Richard Henderson * combine.c (combine_instructions): Don't use reg_equal/equiv results if the mode doesn't match. 2005-08-02 Mark Mitchell * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it. * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it. 2005-08-02 Richard Henderson PR 23196 * explow.c (memory_address): Remove special-case for virtual_stack_vars_rtx and virtual_incoming_args_rtx. 2005-08-02 Diego Novillo PR 23164 * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the number of calls to cleanup_tree_cfg_1. 2005-08-02 Martin Reinecke * doc/invoke.texi: document file extensions .F90 and .F95 2005-08-02 Richard Guenther * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is positive if its first argument is positive. 2005-08-02 Richard Guenther PR tree-optimization/23177 * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands on TMR_TAG. 2005-08-02 James A. Morrison PR tree-optimization/23129 * tree-vrp.c (extract_range_from_binary_expr): Set value range to varying for divisions with anti-ranges. 2005-08-02 Jan Hubicka * tree-ssa-dom.c (thread_across_edge): Remove updating here. * tree-ssa-threadupdate.c (thread_block): Add it here. 2005-08-01 James E Wilson * config/mips/mips.c (mips_encode_section_info, mips_attribute_table, TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New. * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P): New. * config/mips/predicates.md (const_call_insn_operand): Add check for SYMBOL_REF_LONG_CALL_P. * doc/extend.texi (long_call): Document the new attribute. 2005-08-01 Ian Lance Taylor Richard Henderson * Makefile.in (RTL_BASE_H): Add real.h. * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy instead of memcpy. * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv directly. * rtl.c (rtl_check_failed_code_mode): New. * rtl.h (struct rtx_def): Add u.rv. (XCMWINT, XCNMPRV): New. (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT. (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify. 2005-08-01 Richard Henderson * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG, with auto-inc codes. * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE. 2005-08-01 Jan Hubicka * i386-protos.h (asm_preferred_eh_data_format): Declare. * i386.c: Include dwarf2.h (asm_preferred_eh_data_format): New. * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline. 2005-08-01 Ian Lance Taylor * config/host-linux.c (linux_gt_pch_get_address): Add new name randomize_va_space for virtual address randomization control. 2005-08-01 Steven Bosscher * common.opt (flag_ipa_cp): Put in right place to maintain alphabetic sort. 2005-08-01 Jan Hubicka * profile.c (compute_value_histograms): Fix thinko. * value-prof.c: Include toplev.h (check_counter): New function. (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform, tree_mod_subtract_transform): Add sanity check. 2005-08-01 Richard Guenther PR tree-optimization/23133 * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk current functions parameter decls to find defs to cse reciprocals of. 2005-08-01 Richard Guenther PR tree-optimization/23109 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): If trapping math is in effect, use post-dominator information to check if we'd in any case reach a trapping point before doing the reciprocal insertion. (execute_cse_reciprocals): Compute post-dominators, if necessary. * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV expressions are invariant only if trapping math is not in effect. 2005-08-01 Razya Ladelsky * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning, cgraph_function_versioning): New declarations. * cgraphunit.c: Add include to ipa-prop.h. (update_call_expr, cgraph_copy_node_for_versioning, cgraph_function_versioning): New functions. * integrate.c (copy_decl_for_inlining): Remove. * ipa-prop.h (ipa_replace_map): New struct. (struct ipa_node): Add ipcp_orig_node, count_scale, new fields. * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned, ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale, ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate, ipcp_iterate_stage, ipcp_method_scale_print, ipcp_profile_mt_count_print, ipcp_profile_cs_count_print, ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print, ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph, ipcp_update_bb_counts, ipcp_update_profiling, ipcp_update_edges_counts): New functions. (ipcp_method_cval_init): Remove restriction regarding local methods. (ipcp_init_stage): Add ipcp_method_compute_scale. (ipcp_insert_stage): Add versioning. (ipcp_structures_print): Add ipcp_method_scale_print. (ipcp_driver): Dump profiling info. * Makefile.in: Remove integrate.h dependency from tree-inline.o. Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o. * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h. (struct inline_data): Add versioning_p, ipa_info, new fields. (remap_decl, mark_local_for_remap_r, setup_one_parameter, declare_return_variable): Replace calls to copy_decl_for_inlining with copy_decl_for_dup. (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add versioning support. (copy_decl_for_dup): Rename from copy_decl_for_inlining. Add argument VERSIONING. (copy_arguments_for_versioning, copy_static_chain, function_versionable_p, tree_versionable_function_p, tree_function_versioning, replace_ref_tree): New functions. * tree-inline.h: Include varray.h. (tree_versionable_function_p, tree_function_versioning, tree copy_decl_for_dup): New declarations. 2005-08-01 Razya Ladelsky * ipa-cp.c: New file. Contains IPCP specific functionality. * ipa-prop.h: New file. Contains structures/definitions that can be used by several interprocedural data flow optimizations (and also IPCP). * ipa-prop.c: New file. * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c. * common.opt: Add ipa-cp flag. * timevar.def: Add IPCP optimization. * tree-optimize.c (init_tree_optimization_passes): Schedule pass_ipa_cp. * tree-pass.h (pass_ipa_cp): Declare. 2005-08-01 Kazu Hirata * dwarf2out.c, fold-const.c, ipa-type-escape.c, loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c, tree-sra.c, config/arm/arm.c, config/crx/crx.c, config/i386/i386.c, config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.c, config/stormy16/stormy16.c: Fix comment typos. 2005-08-01 Joseph S. Myers PR c/22311 * c-typeck.c (build_binary_op): Use common_type wrapper on shortened types. (common_type): Update comment. 2005-07-31 Steven Bosscher PR target/23095 * common.opt (flag_gcse_after_reload): Don't initialize to 2. (flag_rerun_cse_after_loop): Initialize this to 2 instead. * postreload-gcse.c (hash_scan_set): Do not consider stack regs. 2005-07-31 Jan Hubicka * pretty-print.h (pp_widest_integer): New macro. * tree-pretty-print.c (dump_bb_header): Print BB frequencies and counts. 2005-07-31 Jan Hubicka * output.h (enum section_category): Export from varasm.c (categorize_decl_for_section): Likewise. * varasm.c (enum section_category): Kill. (categorize_decl_for_section): Make global. * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common): Declare. * i386.c (ix86_section_threshold): New static variable. (ix86_in_large_data_p, ix86_encode_section_info, x86_64_elf_unique_section, x86_64_elf_select_section): New functions. (TARGET_ENCODE_SECTION_INFO): Define (override_options): Enable medium model for PIC. (ix86_expand_prologue): Expand gen_set_got_rex64. (legitimate_constant_p): Handle new UNSPECs. (legitimate_pic_address_disp_p): Likewise. (legitimize_pic_address): Lower MEDIUM model addressing. * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC. (enum cmodel): Add MEDIUM_PIC. (SYMBOL_REF_FAR_ADDR_P): New macro. (SYMBOL_FLAG_FAR_ADDR): New flag. * i386.md (movdi): Support medium model. (set_got_rex64): New pattern. * i386.opt (mlarge-data-threshold): New flag. * predicates.md (zext_operand/sext_operand): Deal with medium model. * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss. (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New. * invoke.texi (-mlarge_data_threshold): Document 2005-07-31 Jan Hubicka * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost. (coalesce_vars): Likewise. * tree-ssa-live.c (coalesce_cost): New. (build_tree_conflict_graph): Use coalesce_cost. * tree-ssa-live.h (coalesce_cost): Declare. 2005-07-30 Richard Earnshaw * arm.md (all peepholes for post-increment operations): Delete. (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec) (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec) (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec) (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc) (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete. 2005-07-30 James A. Morrison * fold-const.c (tree_expr_nonnegative_p): Always return true for non-integral types. 2005-07-29 Wolfgang Bangerth PR target/22582 * doc/invoke.texi: Document -rdynamic. 2005-07-30 Joseph S. Myers PR c/23143 * c-parser.c (c_parser_parms_list_declarator): Call mark_forward_parm_decls. * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for decls with visibility structure. 2005-07-30 Paul Brook * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment. 2005-07-30 Paul Brook * config/arm/arm-protos.h (arm_canonicalize_comparison): Update prototype. * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit value for mode. * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument. 2005-07-29 Joseph S. Myers PR c/529 * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in nested function declarators. (pushdecl): Don't call warn_if_shadowing for PARM_DECL. (grokparms): Call warn_if_shadowing for parameters used within the parameter list. (store_parm_decls_newstyle): Call warn_if_shadowing for parameters not used within the parameter list. (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters. 2005-07-30 Jan Hubicka * expr.c (expand_expr_real_1): Do not load mem targets into register. * i386.c (ix86_fixup_binary_operands): Likewise. (ix86_expand_unary_operator): Likewise. (ix86_expand_fp_absneg_operator): Likewise. * optabs.c (expand_vec_cond_expr): Validate dest. 2005-07-29 Joseph S. Myers PR c/21720 * real.c (real_from_string): Also set last bit if there is a nonzero hex digit beyond GCC's internal precision after ".". 2005-07-29 David Edelsohn * config/rs6000/altivec.md: Convert UNSPEC numerical values to define_constants. Change duplicate values to unassigned numbers. Change UNSPEC_SUBS to UNSPEC_VSUBS. (*altivec_vspltsf): New. (altivec_vperm_v4sf): Delete. (altivec_vperm_): Use mode macro V. (altivec_vsldoi_): Convert to mode macro pattern. (altivec_predicate_v4sf): Delete. (altivec_predicate_): Use mode macro V. (*altivec_lvesfx): New. (*altivec_stvesfx): New. (vec_realign_load_v4sf): Delete. (vec_realign_load_): Use mode macro V. * config/rs6000/rs6000.c (generate_set_vrsave): Use UNSPECV_SET_VRSAVE. 2005-07-29 Mark Mitchell PR bootstrap/23131 * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty string. * configure: Regenerated. 2005-07-29 Paul Brook * doc/install.texi: Add link to GFortran binaries wiki page. 2005-07-29 David Ung * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table. (mips_rtx_cost_data): Add costs for 5kc and 5kf. * config/mips/mips.h (processor_type): Add PROCESSOR_5KF. * config/mips/mips.md (cpu): Add 5kf name. (includes): Includes 5k.md. * config/mips/5k.md: New DFA pipeline for the 5kc/5kf. * doc/invoke.texi (MIPS Options): Updated cpu name supported with -march flag. 2005-07-29 Diego Novillo PR 22550 * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ... (cleanup_tree_cfg): ... here. Call cleanup_tree_cfg_1 until there are no more cleanups to do. 2005-07-29 James A. Morrison * tree-vrp.c (compare_range_with_value): Return true or false for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and EQ_EXPR respectively. 2005-07-29 Kazu Hirata * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c: Fix comment typos. 2005-07-29 Diego Novillo * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations. (tree_ssa_dominator_optimize): Increment it. (dump_dominator_optimization_stats): Print it. 2005-07-29 Richard Earnshaw Steven Bosscher PR rtl-optimization/23117 * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly when head == tail. Tidy comment. 2005-07-28 Richard Henderson * cse.c (exp_equiv_p): Special case CONST_DOUBLE. * cselib.c (rtx_equal_for_cselib_p): Likewise. * jump.c (rtx_renumbered_equal_p): Likewise. * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0, CONST_INT and CONST_DOUBLE. (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF. * reload.c (operands_match_p): Special case CONST_INT and CONST_DOUBLE; check mode earlier. 2005-07-29 Joseph S. Myers PR c/22240 * c-typeck.c (convert_for_assignment): Do not check DECL_IN_SYSTEM_HEADER on NULL fundecl. 2005-07-29 Joseph S. Myers PR c/22192 * c-typeck.c (composite_type): Prefer constant size arrays to VLAs. 2005-07-29 Joseph S. Myers PR c/21720 * real.c (real_from_string): Set last bit if there is a nonzero hex digit beyond GCC's internal precision. 2005-07-28 Richard Henderson PR rtl-opt/22619 * cfgcleanup.c (try_forward_edges): Watch out for end of insn chain. 2005-07-28 James E Wilson PR c/23106 * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording. 2005-07-28 Jan Hubicka * Makefile.in (rtl-profile.o): Kill all traces of it. * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill. * coverage.h (rtl_coverage_counter_ref): Kill. * opts.c (flag_speculative_prefetching_set): Kill. (flag_loop_optimize_set): New. (common_handle_option): Disable loop optimizer when profiling; do not handle speculative prefetching. * passes.c (init_optimization_passes): Replace pass_profiling combo by branch_prob pass. * profile.c (compute_value_histograms): Update for simplified value profiles. (rtl_register_profile_hooks): Kill. (pass_profiling): Kill. (rest_of_handle_branch_prob): Do not profile. * toplev.c (process_options): Remove speculative prefetching. * toplev.h (flag_tree_based_profiling): Kill. * tree-profile.c (prepare_instrumented_value, tree_gen_interval_profiler, tree_gen_pow2_profiler, tree_gen_one_value_profiler, do_tree_profiling): Update for simplified datastructures. * value-prof.c: Add comment that speculative prefetching was dropped; update rest of file for simplified datastructures. (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX, rtl_divmod_values_to_profile, insn_prefetch_values_to_profile, find_mem_reference_1, find_mem_reference_2, find_mem_reference, rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2, rtl_mod_subtract, gen_speculative_prefetch, rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform, rtl_mod_subtract_transform, speculative_prefetching_transform): Kill. (gate_handle_value_profile_transformations, rest_of_handle_value_profile_transformations, pass_value_profile_transformations): Kill. * value-prof.h (histogram_value_t): Remove IL based unions. (rtl_register_value_prof_hooks, rtl_register_profile_hooks, rtl_profile_hooks): Remove hooks. * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill. * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument. (cgraph_clone_node): Likewise. * cgraph.h (cgraph_clone_edge): Update prototype. (cgraph_clone_node): Likewise. * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of cgraph_clone_node. (lookup_recursive_calls): Consider profile. (cgraph_decide_recursive_inlining): Fix updating; use new probability argument; use profile. * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New. * tree-inline.c (copy_bb): Update clal of clone_edge. * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node. * invoke.texi (min-inline-recursive-probability): Document. 2005-07-28 Gerald Pfeifer * doc/install.texi (Configuration): Update Valgrind homepage. 2005-07-28 Richard Henderson PR middle-end/21362 * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on labels we want to delete. (cfg_layout_merge_blocks): Likewise. 2005-07-28 Richard Henderson PR target/17692 * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note when expanding to nothing. 2005-07-28 Josh Conner * ipa-inline.c (update_caller_keys): Fix estimated_growth caching. (cgraph_decide_inlining_of_small_functions): Likewise. 2005-07-28 Josh Conner * ipa-inline.c (cgraph_edge_badness): Update comments. Invert shift direction of badness if negative. (cgraph_default_inline_p): Add reason to parameters, and assign it a value. (cgraph_decide_inlining_of_small_functions): New parameter in call to cgraph_default_inline_p. (cgraph_decide_inlining_incrementally): Likewise. * cgraphunit.c (decide_is_function_needed): Likewise. * cgraph.h (cgraph_default_inline_p): Likewise. 2005-07-28 Volker Reichelt * builtins.c: Fix comment typo(s). * genautomata.c: Likewise. * gimplify.c: Likewise. * tree-dfa.c: Likewise. * tree-flow-inline.h: Likewise. * tree-into-ssa.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-copy.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-operands.c: Likewise. * tree-tailcall.c: Likewise. * tree-vectorizer.c: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. 2005-07-28 Jeff Law * tree-vrp.c (test_for_singularity): Extracted from ... (simplify_cond_using_ranges): Attempt to simplify a relational test to NE_EXPR. Dump information when a COND_EXPR is simplified. 2005-07-28 Dorit Nuzman PR tree-optimization/22506 * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed phis whose argument is constant. 2005-07-28 J"orn Rennecke PR rtl-optimization/18992 Back out this patch: 2003-10-08 John David Anglin PR optimization/12142 * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the uses of the register in the SET_SRC. Remove unnecessary argument. Replace it with this: * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases, if flag_non_call_exceptions is set and the insn may trap, pass pc_rtx as dest for recursion. In SET_SRC part of SET case, if dest is already set, pass it down unchanged. 2005-07-28 Jan Hubicka * cfg.c (update_bb_profile_for_threading): Use RDIV. (scale_bbs_frequencies_int): Likewise, assert for possible overflow. (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and roundoff errors. * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating profile when available. 2005-07-28 Jan Beulich * config/ia64/ia64.c (ia64_load_pair_ok): New. (ia64_print_operand): Describe and handle 'X'. (ia64_register_move_cost): Also handle FP_REGS. (ia64_preferred_reload_class): Likewise. (ia64_secondary_reload_class): Likewise. (ia64_dependencies_evaluation_hook): New local variable c. Initialize it. Also check for ITANIUM_CLASS_FLDP. * config/ia64/ia64.h (FP_REGNO_P): New. (HARD_REGNO_MODE_OK): Remove explusion of TImode. (reg_class): Add FP_REGS. (REG_CLASS_NAMES): Adjust for it. (REG_CLASS_CONTENTS): Likewise. (REGNO_REG_CLASS): Use FP_REGS where appropriate. (REG_CLASS_FROM_LETTER): Handle 'x'. (CLASS_MAX_NREGS): Handle FP_REGS. (MEMORY_MOVE_COST): Likewise. * config/ia64/ia64.md (itanium_class): Add fldp. (type): Handle fldp. (movti_internal): More allowable operand combinations. Use ldfp8 when splitting unnecessary. Remove predicable attribute. Adjust itanium_class attribute. (smuldi3_highpart): Remove outdated comment. (mulditi3, umulditi3, rotlti3): New expanders. (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns. (absti2): Disabled new insn for future reference. Respective new splitters. * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations. * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise. * config/ia64/ia64-protos.h (ia64_load_pair_ok): New. 2005-07-25 James A. Morrison PR rtl-optimization/23047 * simplify-rtx.c (simplify_const_relational_operation): Respect flag_wrapv for comparisons with ABS. 2005-07-27 James A. Morrison PR tree-optimization/22493 * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs. 2005-07-27 Aldy Hernandez * config/frv/frv.opt (moptimize-membar): New. * doc/invoke.texi: Document -moptimize-membar and its inverse. * config/frv/frv.h: Remove machine_function definition. * config/frv/frv.c (struct frv_io): New. (struct machine_function): Moved from frv.h. Add has_membar_p. (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union) (frv_extract_membar, frv_io_check_address, frv_io_handle_set) (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local) (frv_optimize_membar_global, frv_optimize_membar): New functions. (frv_reorg): Call frv_optimize_membar when appropriate. (bdesc_loads, bdesc_stores): Use the membar code as the icode field. (frv_expand_builtin): Adjust calls accordingly. (frv_io_address_cookie): New function. (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal load or store rather than a special insn. Add ccnstant address and io-type operands to the membar. (frv_ifcvt_modify_tests): Unsign regno. (frv_ifcvt_modify_tests): Same. * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}. Change UNSPEC_OPTIONAL_MEMBAR constant. (builtin_read_): Delete. (builtin_write_): Delete. ("optional_membar_"): Add operand. * testsuite/gcc.target/frv/all-builtin-read8.c: Delete. * testsuite/gcc.target/frv/all-builtin-read16.c: Delete. * testsuite/gcc.target/frv/all-builtin-read32.c: Delete. * testsuite/gcc.target/frv/all-builtin-read64.c: Delete. * testsuite/gcc.target/frv/all-builtin-write8.c: Delete. * testsuite/gcc.target/frv/all-builtin-write16.c: Delete. * testsuite/gcc.target/frv/all-builtin-write32.c: Delete. * testsuite/gcc.target/frv/all-builtin-write64.c: Delete. * testsuite/gcc.target/frv/all-read-write-1.c: New. 2005-07-28 Kaz Kojima * df.c (df_uses_record): Handle SCRATCH. 2005-07-28 Steven Bosscher PR debug/20161 * passes.c (rest_of_decl_compilation): If decl is a type and we have encountered errors, don't emit debug information. 2005-07-27 Kenneth Zadeck * params.def: Fixed comment. 2005-07-27 Bjoern Haase PR target/19885 * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add. (TARGET_ASM_UNALIGNED_HI_OP): Add. (TARGET_ASM_UNALIGNED_SI_OP): Add. 2005-07-27 Steven Bosscher PR c++/22003 * varasm.c (assemble_start_function): Don't do anything that may require a CFG if the current function is a thunk. 2005-07-25 Geoffrey Keating * doc/install.texi (Prerequisites): Mention that perl is needed to do export control in libstdc++ targetting Darwin. 2005-07-27 Steven Bosscher PR rtl-optimization/17808 * sched-deps.c (sched_get_condition): Enable #if 0'ed code. (sched_insns_conditions_mutex_p): Split out from... (add_dependence): ...here. But don't call it from here. (add_dependence_list): Check sched_insns_conditions_mutex_p before calling add_dependence. (add_dependence_list_and_free): Likewise. (fixup_sched_groups): Likewise. (sched_analyze_1): Likewise. (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE). (sched_analyze): Likewise. (sched_analyze_insn): Likewise. * sched-ebb.c (add_deps_for_risky_insns): Likewise. * sched-rgn.c (add_branch_dependences): Likewise. Also, add dependencies on all COND_EXEC insns to jumps ending basic blocks when doing intrablock scheduling. * sched-int.h (sched_insns_conditions_mutex_p): Add prototype. 2005-07-27 Jeff Law * tree-vrp.c (vrp_meet): Intersect the equivalency sets when meeting a VR_ANTI_RANGE with a VR_RANGE. When intersecting equivalency sets, correctly handle the case were vr0 has an equivalency set, but vr1 does not. 2005-07-27 Dorit Nuzman PR tree-optimization/23073 * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call vect_print_dump_info before fprintf. 2005-07-27 Zdenek Dvorak PR tree-optimize/22348 * tree-ssa-loop-niter.c (number_of_iterations_cond): Fold the partial computation. 2005-07-27 Zdenek Dvorak PR tree-optimization/22325 * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost): Declare. * tree-scalar-evolution.c (scev_const_prop): Add generic final value replacement. * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ... (force_var_cost): ... this function. (compute_phi_arg_on_exit): Export. 2005-07-27 Zdenek Dvorak PR tree-optimization/20773 * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch edge. 2005-07-27 Richard Guenther * tree-ssa-structalias.c (push_fields_onto_fieldstack): Avoid pushing again if current struct contains only fields we decomposed. 2005-07-27 Jan Hubicka PR tree-optimization/22574 * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are not available. * tree-tailcall.c (decrease_profile): New function. (eliminate_tail_call): Use it. * cgraphunit.c (cgraph_function_and_variable_visibility): Set visibility flags correctly in whole program mode. 2005-07-26 Steve Ellcey PR rtl-optimization/22472 * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define. 2005-07-26 Steven Bosscher PR tree-optimization/22504 * tree-complex.c (expand_complex_addition): Use 'code' instead of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING). 2005-07-26 Aldy Hernandez * config.gcc (cpu_type): Add frv case. (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases. (supported_defaults): Add fr550 case. 2005-07-26 Diego Novillo PR 22591 * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests whether a pointer of type T * may point to objects of type T *. 2005-07-26 DJ Delorie * configure: Regenerate. 2005-07-26 Dale Johannesen * postreload-gcse.c (alloc_mem): Start CUID numbering at 1. 2005-07-26 Mark Mitchell * doc/install.texi (--with-build-sysroot): Fix grammatical error. Clarify use of "build" in name. 2005-07-26 Aldy Hernandez * doc/extend.texi (Raw read/write Functions): New section. * testsuite/gcc.target/frv/all-builtin-read8.c: New. * testsuite/gcc.target/frv/all-builtin-read16.c: New. * testsuite/gcc.target/frv/all-builtin-read32.c: New. * testsuite/gcc.target/frv/all-builtin-read64.c: New. * testsuite/gcc.target/frv/all-builtin-write8.c: New. * testsuite/gcc.target/frv/all-builtin-write16.c: New. * testsuite/gcc.target/frv/all-builtin-write32.c: New. * testsuite/gcc.target/frv/all-builtin-write64.c: New. * config/frv/frv.c: Add bdesc_loads global. Add bdesc_stores global. (frv_init_builtins): Add support for __builtin_{read/write}*. (frv_volatile_memref): New. (frv_expand_load_builtin): New. (frv_expand_store_builtin): New. * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN, FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32, FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16, FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64. * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD, UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR. (builtin_read_): New. (builtin_write_): New. (builtin_write64): New. (optional_membar_): New. 2005-07-26 J"orn Rennecke * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits (rather than units) against HOST_BITS_PER_WIDE_INT. 2005-07-26 Kazu Hirata * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c, ipa-utils.h, treestruct.def, config/crx/crx-protos.h, config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update FSF address. * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c, tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h, config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix comment typos. * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos. 2005-07-26 Richard Guenther PR tree-optimization/22486 * fold-const.c (fold_unary): Fold away useless component references of the form (T *)&T.x, if the address doesn't change. 2005-07-25 James E Wilson * dwarf2out.c (add_call_src_coords_attributes): New. (gen_inlined_subroutine_die): Call it. (maybe_emit_file, init_file_table): Add comments. (prune_unused_types_walk_attribs): Pass DW_AT_call_file through maybe_emit_file. * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION. (expand_call_inline): Set BLOCK_SOURCE_LOCATION. * tree.h (BLOCK_SOURCE_LOCATION): New. (struct tree_block): New field locus. 2005-07-26 Andreas Schwab PR rtl-optimization/23043 * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo when allocating a struct unoccr. 2005-07-25 Richard Henderson PR 22626 * tree-complex.c (gate_no_optimization): True if errors. * Makefile.in (tree-complex.o): Update dependencies. 2005-07-25 Aldy Hernandez * config/frv/predicates.md (integer_register_operand): Use GPR_AP_OR_PSEUDO_P. 2005-07-25 Andrew Pinski PR tree-opt/22484 * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions after fold. * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands. 2005-07-25 Andrew Pinski * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point types when flag_unsafe_math_optimizations is true. 2005-07-25 Mark Mitchell * gcc.c (option_map): Add --sysroot. (process_command): Handle --sysroot. (display_help): Document it. * doc/cppopts.tex (-isysroot): Document. * doc/invoke.texi (--sysroot): Document. * doc/install.texi (--with-build-sysroot): Document. * Makefile.in (inhibit_libc): New variable. (INHIBIT_LIBC_CFLAGS): Likewise. (LIBGCC2_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS). (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS). ($(T)crtbegin.o): Do not use @inhibit_libc@. ($(T)crtend.o): Likewise. ($(T)crtbeginS.o): Do not use @inhibit_libc@. ($(T)crtendS.o): Likewise. ($(T)crtbeginT.o): Do not use @inhibit_libc@. ($(T)crtendT.o): Likewise. (stmp-fixinc): Do not complain about missing headers if inhibit_libc. * configure.ac (inhibit_libc): Set it to true/false. (--with-build-sysroot): New option. Use it to set SYSTEM_HEADER_DIR. * configure: Regenerated. 2005-07-25 Manfred Hollstein * calls.c (store_one_arg): Fix unsigned comparison warning. 2005-07-25 Serge Belyshev PR other/22337 * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD. (ggc_print_statistics): Initialize variable before use. 2005-07-25 Richard Guenther * tree-dfa.c (mark_new_vars_to_rename): Protect against calling with a PHI_NODE argument. * tree-flow-inline.h (overlap_subvar): Protect against possible overflow. 2005-07-25 Paolo Bonzini * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory. * configure: Regenerate. 2005-07-25 Ira Rosen * expr.c (highest_pow2_factor): Make extern. * tree-data-ref.c (ptr_decl_may_alias_p): New function. (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p, record_array_differ_p, array_ptr_differ_p): Likewise. (base_object_differ_p): Rename (from array_base_name_differ_p). Support additional cases. Call the above functions. (base_addr_differ_p): Moved from tree-vect-analyze.c. Call base_object_differ_p when there are two base objects. Otherwise, compare base address and offset. Call may_alias_p. (dump_data_reference): Use a correct field name. (analyze_array): Make static. Initialize new data-ref fields. (analyze_indirect_ref): New function. (init_data_ref): Initialize new data-ref fields. (strip_conversion): Moved from tree-vect-analyze.c. (analyze_offset_expr, get_ptr_offset, address_analysis, object_analysis): Likewise. (analyze_offset): New function. (create_data_ref): Likewise. (initialize_data_dependence_relation): Call base_addr_differ_p. Compare dimensions for ARRAY_REFs only. (build_classic_dist_vector): Make static. (access_functions_are_affine_or_constant_p): Call macro to get the address of access functions. (compute_all_dependences): Add new parameter compute_self_and_read_read_dependences. Compute self and read-read dependences if it is true. (find_data_references_in_loop): Call create_data_ref. Initialize new data-ref fields. (compute_data_dependences_for_loop): Add new parameter compute_self_and_read_read_dependences. Remove parameter nb_loops, compute nb_loops. Call compute_all_dependences, build_classic_dist_vector and build_classic_dir_vector with correct parameters. (analyze_all_data_dependences): Call compute_data_dependences_for_loop with correct parameters. Compare dimensions for ARRAY_REFs only. (free_data_refs): Call macro to free access functions. * tree-data-ref.h (struct first_location_in_loop): New structure. Move fields from stmt_vinfo. (struct base_object_info): New structure. (struct data_reference): Move fields to base_object_info. Add fields first_location and object_info for above structures. Move fields from stmt_info: memtag, ptr_info, subvars, misalignment. Add new field aligned_to. Add macros to access the new fields. Update functions declarations. * tree-flow.h (is_aliased_with): Declare. * tree-loop-linear.c (linear_transform_loops): Call compute_data_dependences_for_loop with correct parameters. * tree-ssa-alias.c (is_aliased_with): New function. * tree-vect-analyze.c (vect_get_ptr_offset): Remove. (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise. (vect_analyze_data_ref_dependence): Get ddr. Remove call to vect_base_addr_differ_p, compute_subscript_distance and build_classic_dist_vector. Add printings. Check absolute value of distance. (vect_analyze_data_ref_dependences): Go through ddrs instead of data-refs. (vect_compute_data_ref_alignment): Get the fields of data-ref instead of stmt. Check aligned_to. Check if the base is aligned. Remove conversion to bytes. Add printing. (vect_compute_data_refs_alignment): Go through loads and stores in one loop. (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment, vect_analyze_data_ref_access): Likewise. (vect_analyze_pointer_ref_access): Remove. (vect_address_analysis, vect_object_analysis): Likewise. (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find and analyze data-refs in the loop. * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the fields of data-ref instead of stmt. Add init to the offset from the base. (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt. (vect_update_init_of_dr): Likewise. (vect_update_inits_of_drs): Go through loads and stores in one loop. * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of removed fields. (new_loop_vec_info): Initialize new fields. (destroy_loop_vec_info): Free new fields. (vect_strip_conversion): Remove. * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level. (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into datarefs. Add new field ddrs. Add macros for the new fields access. (struct _stmt_vec_info): Remove: base_address, initial_offset, step, base_aligned_p, misalignment, memtag, ptr_info and subvars. Remove their macros. * tree.h (highest_pow2_factor): Declare. 2005-07-25 Jakub Jelinek * calls.c (store_one_arg): Check for sibling call MEM arguments from already clobbered incoming argument area. 2005-07-24 Kaveh R. Ghazi * c-common.c (check_missing_format_attribute): New. * c-common.h (check_missing_format_attribute): Likewise. * c-typeck.c (convert_for_assignment): Use it. 2005-07-24 Andreas Schwab * config/m68k/m68k.md ("extendqidi2"): When source is an address register use a word move. Correct operand of ext.w in 68000 code. 2005-07-23 Mark Mitchell * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT variables as declarations, rather than definitions. 2005-07-24 Ira Rosen PR tree-optimization/22526 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type of the zero node. 2005-07-24 Francois-Xavier Coudert * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins that C99 reserve for future use. Use it to define clog10, clog10f and clog10l. 2005-07-23 Kaveh R. Ghazi * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute. * configure.ac: Check for -Wmissing-format-attribute. * configure: Regenerate. 2005-07-23 Richard Henderson PR tree-optimization/22623 * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol. 2005-07-23 Giovanni Bajo PR target/22577 * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR. 2005-07-23 Kaveh R. Ghazi * Makefile.in (C_TREE_H): Update dependencies. * c-tree.h: Include toplev.h. * diagnostic.h (diagnostic_set_info): Add format attribute. * rtl-error.c (diagnostic_for_asm): Likewise. 2005-07-23 Chao-ying Fu * config/mips/mips-dsp.md: New file. * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes. * config/mips/mips.c (mips_function_type): Add types for DSP builtin functions. (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and MIPS_BUILTIN_BPOSGE32. (mips_expand_builtin_direct): Add one parameter to indicate that builtin functions need to return a value. (mips_expand_builtin_bposge): New for expanding "bposge" builtin functions. (mips_regno_to_class): Add classes for 12 new DSP registers. (mips_subword): Change to check four HI registers. (mips_output_move): Output move to and from 6 new DSP accumulators. (override_options): Make sure -mdsp and -mips16 are not used together. Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS. Enable DSP accumulators for machine modes. (mips_conditional_register_usage): Disable 6 new DSP accumulators when !TARGET_DSP. (print_operand): Add 'q' for printing DSP accumulators. (mips_cannot_change_mode_class): Check ACC_REGS. (mips_secondary_reload_class): Check ACC_REGS. (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP. (mips_register_move_cost): Check ACC_REGS. (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph) (CODE_FOR_mips_subu_qb): New code-aliasing macros. (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros. (dsp_bdesc): New array. (bdesc_arrays): Add DSP builtin function table. (mips_prepare_builtin_arg): Check predicate again after copy_to_mode_reg. (mips_expand_builtin): Add one more parameter to mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and MIPS_BUILTIN_BPOSGE32. (mips_init_builtins): Initialize new function types. (mips_expand_builtin_direct): Check if builtin functions need to return a value and pass operands properly. (mips_expand_builtin_bposge): New function. * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp. (ASM_SPEC): Map -mdsp to -mdsp in GAS. (FIRST_PSEUDO_REGISTER): Increase to 188. (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Update for 12 new DSP registers. (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM) (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM): (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros. (reg_class): Add DSP_ACC_REGS and ACC_REGS. (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS. (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS. (REG_ALLOC_ORDER): Update for 12 new DSP registers. (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS. (UIMM6_OPERAND, IMM10_OPERAND): New macros. (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints. (REGISTER_NAMES): Add names for 12 new DSP registers. * config/mips/mips.md: Include mips-dsp.md. (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC) (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S) (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W) (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR) (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA) (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR) (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL) (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R) (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH) (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL) (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR) (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH) (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL) (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR) (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH) (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB) (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH) (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H) (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP) (UNSPEC_RDDSP): New constants. (*movdi_32bit): Change 'x' to 'a' for ACC_REGS. (*movsi_internal): Change 'x' to 'a' for ACC_REGS. Add an A<-d alternative. * config/mips/mips.opt (-mdsp): New option. * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand) (reg_imm10_operand): New predicates. * doc/extend.texi (MIPS DSP Built-in Functions): New section. * doc/invoke.texi (-mdsp): Document new option. 2005-07-22 DJ Delorie * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control to warning calls. * tree-inline.c (inlinable_function_p): Likewise. 2005-07-22 Mark Mitchell PR debug/21828 * toplev.c (check_global_declarations): Do not mark undefined variables as DECL_IGNORED_P. * varasm.c (first_global_object_name): GTY it. (weak_global_object_name): Likewise. (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating a string to go into {weak,first}_global_object_name. 2005-07-22 DJ Delorie * c-format.c (check_function_format): Change warning control option from OPT_Wattribute to OPT_Wmissing_format_attribute. 2005-07-22 Diego Novillo * tree-ssa-alias.c (count_ptr_derefs): Do not consider &PTR->FLD a dereference of PTR. * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD a potential dereference of PTR. 2005-07-22 J"orn Rennecke PR rtl-optimization/20370 * ifcvt.c (dead_or_predicable): Before calling propagate_block, call allocate_reg_info if necessary. PR rtl-optimization/21848 * calls.c (emit_library_call_value_1): For const functions, add USEs of the stack slots to CALL_INSN_FUNCTION_USAGE. PR rtl-optimization/22445 * cselib.c (target.h): Include. (rtx_equal_for_cselib_p): Allow commutative matches. (cselib_hash_rtx): Don't use MODE for CONST_INT hashing. Remove MODE parameter. Changed all callers. PR rtl-optimization/22258 * combine.c (likely_spilled_retval_1, likely_spilled_retval_p): New functions. (try_combine): Use likely_spilled_retval_p. 2005-07-22 Paul Woegerer * config.gcc: Add crx-elf support. * doc/contrib.texi: Mention crx. * doc/extend.texi: Document crx extensions. * doc/install.texi: Document crx install. * doc/invoke.texi: Document crx options. * doc/md.texi: Document crx constraints. * config/crx/crx-protos.h: New file. * config/crx/crx.c: New file. * config/crx/crx.h: New file. * config/crx/crx.md: New file. * config/crx/crx.opt: New file. * config/crx/t-crx: New file. 2005-07-22 Manfred Hollstein * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised warnings. (int_add_graph_edge): Likewise. (collapse_nodes): Likewise. (process_unification_queue): Likewise. 2005-07-22 Richard Kenner Laurent GUERBY PR tree-optimization/22336 * function.c (record_block_change): Check for cfun->ib_boundaries_block. 2005-07-21 James A. Morrison * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs. (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED. 2005-07-21 DJ Delorie * toplev.c (warn_deprecated_use): Add warning control to warning call. * c-typeck.c (parser_build_binary_op): Likewise. (c_finish_if_stmt): Likewise. * c-common.c (check_function_sentinel): Likewise. (check_nonnull_arg): Likewise. 2005-07-21 Richard Henderson PR tree-opt/22504 * tree-complex.c (complex_ssa_name_components): New. (cvc_lookup): Allow entry not found. (create_components): Remove. (create_one_component_var, get_component_var): New. (get_component_ssa_name, set_component_ssa_name): New. (extract_component): Use get_component_ssa_name. (update_complex_components): Use set_component_ssa_name. (update_complex_components_on_edge): Likewise. (update_phi_components): Create new PHI nodes directly, instead of adding insns to edges. (tree_lower_complex): Allocate and free complex_variable_components and complex_ssa_name_components here. 2005-07-20 Daniel Berlin * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT, revert to returning false. 2005-07-21 Uros Bizjak PR target/21149 * config/i386/i386.md (sse_movhlps): Fix vec_select values. 2005-07-21 Uros Bizjak PR target/22576 * config/i386/i386.md (cmpxf): Change operand constraints to "nonmemory_operand". 2005-07-21 Andrew Pinski * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2. 2005-07-21 Andrew Pinski PR middle-end/21180 * fold-const.c (fold_build1): Add checksum for the operands. (fold_build2): Likewise. (fold_build3): Likewise. 2005-07-21 Andrew Pinski PR middle-end/19055 * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X". 2005-07-21 Paolo Bonzini * common.opt (-fforward-propagate): Committed by mistake, removed. 2005-07-21 Volker Reichelt * reg-stack.c: Fix comment typo(s). * tree-ssa-operands.c: Likewise. * tree-vectorizer: Likewise. 2005-07-21 Nick Clifton * config/sh/symbian.c: Replace C++ style line comments with C style line comments. (symbian_add_attribute): Do not use a ? operator on the LHS of an assignment. (sh_symbian_handle_dll_attribute): Change the type of the method vector to "VEC(tree,gc)*" and use vector accessor macros to walk over the elements. (symbian_export_vtable_and_rtti_p): Likewise. (symbian_class_needs_attribute_p): Likewise. 2005-07-21 Paolo Bonzini PR target/22085 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not initialize targetm.resolve_overloaded_builtin here. (altivec_expand_overloaded_builtin): Make it non-static. * config/rs6000/rs6000-protos.h (altivec_expand_overloaded_builtin): New prototype. * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize targetm.resolve_overloaded_builtin here. * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise. 2005-07-21 Paolo Bonzini Zdenek Dvorak PR tree-optimization/19210 * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations): New. * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o. * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations, rely on unproven assumptions. * predict.c (predict_loops): Adjust call to number_of_iterations_exit. * tree-flow.h (number_of_iterations_exit): Add final parameter. * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call to number_of_iterations_exit. * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise. * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise. * tree-ssa-loop-niter.c (find_loop_niter, estimate_numbers_of_iterations_loop): Likewise. (number_of_iterations_exit): Honor the new options. * doc/invoke.texi (Wunsafe-loop-optimizations, funsafe-loop-optimizations): Document them. 2005-07-21 Richard Sandiford PR rtl-optimization/22167 * gcse.c (hoist_code): Fix hoist_exprs[] check. 2005-07-20 Adam Nemet * config/rs6000/lynx.h: Mark __do_global_ctors_aux and __do_global_dtors_aux longcall. 2005-07-20 Kazu Hirata * gensupport.c (old_preds): Don't reference PREDICATE_CODES. (old_special_pred_table): Don't reference SPECIAL_MODE_PREDICATES. * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison. * config/arc/arc.h: Don't mention PREDICATE_CODES. * config/sh/predicates.h: Don't mention SPECIAL_MODE_PREDICATES. * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove. 2005-07-20 DJ Delorie * config.gcc: Add m32c-elf support. * doc/contrib.texi: Mention m32c. * doc/extend.texi: Document m32c extensions. * doc/install.texi: Mention m32c. * doc/invoke.texi: Document m32c options. * doc/md.texi: Document m32c constraints. * config/m32c/addsub.md: New file. * config/m32c/bitops.md: New file. * config/m32c/cond.md: New file. * config/m32c/jump.md: New file. * config/m32c/m32c-lib1.S: New file. * config/m32c/m32c-lib2.c: New file. * config/m32c/m32c-modes.def: New file. * config/m32c/m32c-pragma.c: New file. * config/m32c/m32c-protos.h: New file. * config/m32c/m32c.abi: New file. * config/m32c/m32c.c: New file. * config/m32c/m32c.h: New file. * config/m32c/m32c.md: New file. * config/m32c/m32c.opt: New file. * config/m32c/minmax.md: New file. * config/m32c/mov.md: New file. * config/m32c/muldiv.md: New file. * config/m32c/predicates.md: New file. * config/m32c/prologue.md: New file. * config/m32c/shift.md: New file. * config/m32c/t-m32c: New file. 2005-07-20 Kaz Kojima * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. (stack_protect_set, stack_protect_test): New expanders. (stack_protect_set_si, stack_protect_set_si_media, stack_protect_set_di_media, stack_protect_test_si, stack_protect_test_si_media, stack_protect_test_di_media): New insns. 2005-07-20 Andrew Pinski * c-typeck.c (output_init_element): Don't copy the INTEGER_CST. 2005-07-20 James A. Morrison * tree.h (tree_expr_nonzero_p): Export. * fold-const.c (tree_expr_nonzero_p): Likewise. Return true for CALL_EXPRs that are alloca calls. (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs against zero. * tree-flow.h (expr_computes_nonzero): Remove. * tree-vrp.c (expr_computes_nonzero): Remove. (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p. (extract_range_from_unary_expr): Likewise. * tree-ssa-dom.c (record_equivalences_from_stmt): Use tree_expr_nonzero_p. 2005-07-20 Bernd Schmidt * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare. * config/bfin/bfin.c (legitimize_pic_address): Now static. Take extra arg "picreg" and use it instead of pic_offset_table_rtx. All callers changed. (frame_related_constant_load): New arg "related" which controls setting of RTX_FRAME_RELATED_P. All callers changed. (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue. (bfin_expand_prologue): Add stack limit checking. * config/bfin/bfin.md (trapifcc): New pattern. * config/bfin/bfin.c: Include "langhooks.h". (def_builtin): Go through lang_hooks to call builtin_function. * config/bfin/bfin-protos.h (bfin_longcall_p): Declare. * config/bfin/predicates.md (symbol_ref_operand): New. (call_insn_operand): Delete. All callers changed to use register_no_elim_operand. * config/bfin/bfin.c (init_cumulative_args): Initialize the new call_cookie field. (function_arg): Use it to generate the call's operand 2. (bfin_longcall_p): New function. (bfin_expand_call): Extra arg "cookie". All callers and declaration changed. Emit extra USE in the pattern. Use bfin_longcall_p to determine if the address needs to be in a REG. (bfin_handle_longcall_attribute): New function. (bfin_attribute_table): Add "longcall" and "shortcall". * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros. (CUMULATIVE_ARGS): New member call_cookie. (PREDICATE_CODES): Add symbol_ref_operand. * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add extra USE to the pattern. (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol): New patterns, split off call_insn, sibcall_insn, call_value_insn and sibcall_value_insn; now the new patterns handle direct calls and the old ones indirect calls. * doc/extend.texi: Mention Blackfin in longcall/shortcall docs. 2005-07-20 Zdenek Dvorak * doc/trouble.texi: Update section on handling of empty loops. 2005-07-20 Kazu Hirata * config.gcc: Remove support for sparc-*-openbsd*, i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*, ns32k-*-netbsd*. * config.host: Remove support for i860-*-sysv4* as a host. * config/i860/*, config/ip2k/*, config/ns32k/*, config/sparc/openbsd.h, config/sparc/t-openbsd: Remove. * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't mention obsolete ports. 2005-07-20 Kaz Kojima * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for soft frame pointer. (sh_expand_prologue): Use hard_frame_pointer_rtx instead of frame_pointer_rtx. (sh_expand_epilogue): Likewise. (sh_set_return_address): Likewise. (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM if needed. Add elimination offsets from FRAME_POINTER_REGNUM. * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp. (sh_register_names): Add initializer for sfp. (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM. (VALID_REGISTER_P): Likewise. (FIRST_PSEUDO_REGISTER): Update. (DWARF_FRAME_REGISTERS): Define. (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp. (HARD_FRAME_POINTER_REGNUM): Define. (FRAME_POINTER_REGNUM): Redefine. (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM instead. Add eliminations from FRAME_POINTER_REGNUM. (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM. (REG_CLASS_CONTENTS): Add sfp. (REG_ALLOC_ORDER): Likewise. (FRAME_GROWS_DOWNWARD): Set to 1. Update comment. (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead of frame_pointer_rtx. (LEGITIMIZE_RELOAD_ADDRESS): Likewise. 2005-07-19 James A. Morrison * fold-const.c (tree_expr_nonnegative_p): Only return true for ABS_EXPR when flag_wrapv is false because of INT_MIN. (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument of an ABS_EXPR. (fold_unary): Always fold ABS_EXPR> into ABS_EXPR. 2005-07-20 Giovanni Bajo Make CONSTRUCTOR use VEC to store initializers. * c-common.c (complete_array_type): Update to cope with VEC in CONSTRUCTOR_ELTS. * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts. (pp_c_constructor_elts): New function. * c-pretty-print.h (pp_c_constructor_elts): Declare. * c-typeck.c (build_function_call, build_c_cast, digest_init, struct constructor_stack, struct initializer_stack, constructor_elements, push_init_level, pop_init_level, add_pending_init, find_init_member, output_init_element): Update to cope with VEC in CONSTRUCTOR_ELTS. * coverage.c (build_fn_info_value, build_ctr_info_value, build_gcov_info): Likewise. * expr.c (categorize_ctor_elements_1, store_constructor, expand_expr_real_1): Likewise. * fold-const.c (fold_ternary): Likewise. * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl, gimplify_init_constructor, gimplify_expr): Likewise. * tree-dump.c (dequeue_and_dump): Likewise. * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR node. * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in CONSTRUCTOR_ELTS. * tree-sra.c (generate_element_init_1): Likewise. * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise. * tree-ssa-operands.c (get_expr_operands): Likewise. * tree-vect-generic.c (expand_vector_piecewise): Likewise. * tree-vect-transform.c (vect_get_vec_def_for_operand): (get_initial_def_for_reduction): Likewise. * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses value handle in annotations. * tree.c (tree_node_kind, tree_code_size, make_node_stat, tree_node_structure): Add support for constr_kind. (build_vector_from_ctor, build_constructor_single, build_constructor_from_list): New functions. (build_constructor): Update to take a VEC instead of a TREE_LIST. (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree): Update to cope with VEC in CONSTRUCTOR_ELTS. * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node. * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT, CONSTRUCTOR_APPEND_ELT): New macros. (struct constructor_elt, struct tree_constructor): New data types. (union tree_node): Add tree_constructor field. * treestruct.def: Define TS_CONSTRUCTOR. * varasm.c (const_hash_1, compare_constant, copy_constant, compute_reloc_for_constant, output_addressed_constants, initializer_constant_valid_p, output_constant, array_size_for_constructor, output_constructor): Update to cope with VEC in CONSTRUCTOR_ELTS. * vec.h (VEC_empty, VEC_copy): New macros. 2005-07-19 Devang Patel * dbxout.c (dbxout_type): Check Objective-C++ lang. 2005-07-19 Richard Henderson PR tree-opt/22278 * gimplify.c (gimplify_expr): Use main variant type for the temp destination for a discarded volatile read. * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide casts between non-void types that change volatility. 2005-07-15 DJ Delorie * toplev.h: Add comment about the first parameter for warning(). * errors.h: Likewise. * c.opt (Wpragmas): New. * doc/invoke.texi: Document it. * function.c (do_warn_unused_parameter): Add warning control to warning call. * c-decl.c (warn_if_shadowing): Likewise. * c-lex.c (cb_def_pragma): Likewise. * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise. (pop_alignment): Likewise. (handle_pragma_pack): Likewise. (apply_pragma_weak): Likewise. (handle_pragma_weak): Likewise. (handle_pragma_redefine_extname): Likewise. (add_to_renaming_pragma_list): Likewise. (handle_pragma_extern_prefix): Likewise. (maybe_apply_renaming_pragma): Likewise. (handle_pragma_visibility): Likewise. * config/c4x/c4x-c.c (BAD): Likewise. (c4x_parse_pragma): Likewise. * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise. * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise. (rs6000_pragma_longcall): Likewise. * config/v850/v850-c.c (pop_data_area): Likewise. (ghs_pragma_section): Likewise. (ghs_pragma_section): Likewise. (ghs_pragma_interrupt): Likewise. (ghs_pragma_starttda): Likewise. (ghs_pragma_startsda): Likewise. (ghs_pragma_startzda): Likewise. (ghs_pragma_endtda): Likewise. (ghs_pragma_endsda): Likewise. (ghs_pragma_endzda): Likewise. 2005-07-19 Danny Berlin Kenneth Zadeck * Makefile.in: Removed tree-promote-statics.c * tree-promote-statics.c: Removed. * common.opt: Removed flag-promote-statics. * opts.c: Ditto. * passes.c: Removed tree-promote-statics pass. * tree-pass.h: Ditto. * timevar.def: Removed TV_PROMOTE_STATICS. 2005-07-19 Gerald Pfeifer * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8, and *-*-freebsd9. * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto. 2005-07-19 Kaveh R. Ghazi PR c/22476 * c-common.c (check_function_arguments): Call 'check_function_format' if either -Wformat or -Wmissing-format-attribute are specified. * c-format.c (check_function_format): Check -Wformat before calling 'check_format_info'. * c-opts.c (c_common_post_options): Don't warn for -Wmissing-format-attribute without -Wformat. * c-typeck.c (convert_for_assignment): Detect additional cases for -Wmissing-format-attribute. * doc/invoke.texi (-Wmissing-format-attribute): Document new behavior. 2005-07-19 Richard Guenther * config/i386/i386.md (lrint2): Use temporary instead of clobbering non-existent memory. 2005-07-19 Nick Clifton * config/avr/avr.c (legitimate_address_p): Fix debugging print statement to avoid displaying ASCII control characters. 2005-07-19 Ben Elliston * bt-load.c (link_btr_uses): Fix uninitialised warnings. * cfganal.c (find_edge_index): Ditto. * combine.c (combine_instructions): Ditto. * ddg.c (create_scc): Ditto. (find_successors): Ditto. (find_predecessors): Ditto. (find_nodes_on_paths): Ditto. (longest_simple_path): Ditto. * flow.c (update_life_info): Ditto. (count_or_remove_death_notes): Ditto. (clear_log_links): Ditto. * modulo-sched.c (generate_reg_moves): Ditto. (find_max_asap): Ditto. (find_max_hv_min_mob): Ditto. (find_max_dv_min_mob): Ditto. * sbitmap.c (sbitmap_first_set_bit): Ditto. * sched-rgn.c (extract_edgelst): Ditto. * tree-into-ssa.c (prepare_names_to_update): Ditto. (dump_update_ssa): Ditto. (ssa_names_to_replace) Ditto. (switch_virtuals_to_full_rewrite): Ditto. (update_ssa): Ditto. * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto. 2005-07-18 Daniel Berlin Fix PR tree-optimization/22483 * tree-complex.c (create_components): Use safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE. * tree-flow-inline.h (fill_referenced_var_vec): New function. * tree-flow.h (safe_referenced_var_iterator): New structure. (FOR_EACH_REFERENCED_VAR_SAFE): New macro. * tree-ssa-alias.c (setup_pointers_and_addressables): Use safe_referenced_var iterator. (add_type_alias): Ditto. 2005-07-19 Steven Bosscher * loop-init.c (rest_of_handle_loop2): Remove. (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions. (pass_rtl_loop_init, pass_rtl_loop_done, pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes. * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done, pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init, pass_tree_loop_done, and pass_tree_unswitch. (gate_loop): Rename to gate_tree_loop. * passes.c (init_optimization_passes): Update for renamed tree loop passes. Add the new loop2 passes as subpasses of loop2. * tree-pass.h: Add extern declarations for the new loop2 subpasses. Update for the renamed tree loop passes. 2005-07-18 Ian Lance Taylor PR middle-end/22057 * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder blocks when optimizing. 2005-07-18 Steve Ellcey * common.opt (frename-registers): Initialize to 2. (fweb): Ditto. (fgcse-after-reload): Ditto. * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE. (process_options): Only change flag_web, flag_rename_registers, and flag_rerun_cse_after_loop if not explicitly set by user. 2005-07-18 Jan Beulich * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc, ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode in 64-bit mode the same as DImode in 32-bit mode. (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr, ix86_split_lshr): Likewise. Rename to no longer refer to a specific mode. Add new mode parameter. * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'. * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3, x86_64_shift_adj): New expanders. (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1, *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New insns. Respective new splitters. Use renamed shift splitter helpers in 32-bit DImode shift splitters. * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr, ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new mode parameter. 2005-07-18 Jan Beulich * i386.md (movdi_extzv_1): New. (zero_extendhidi2): Combine alternatives and never force use of REX64 prefix. (zero_extendqidi2): Likewise. Don't restrict input selection. 2005-07-17 Daniel Berlin Fix PR tree-optimization/22531 * tree-ssa-pre.c (do_eustores): Make sure LHS is a decl for the moment. 2005-07-17 Daniel Berlin * tree-promote-statics.c (pass_promote_statics): Change dump file name. 2005-07-17 Daniel Berlin * tree-optimize.c (init_tree_optimization_passes): Add pass_eliminate_useless_stores pass. * tree-pass.h (pass_eliminate_useless_stores): New pass structure. * tree-ssa-pre.c (is_copy_stmt): New function. (follow_copies_till_vuse): Ditto. (do_eustores): Ditto. (gate_eustores): Ditto. 2005-07-16 Richard Henderson * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit. 2005-07-16 Danny Berlin Kenneth Zadeck * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h, tree-promote-statics.c * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h, tree-promote-statics.c: new files. * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p, nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1, int nonlocal_set_p, mark_constant_function): Deleted. (rest_of_handle_cfg): Removed call to mark_constant_function. (nonoverlapping_component_refs_p): Added calls to support type based aliasing. * tree-ssa-alias.c (may_alias_p, compute_flow_insensitive_aliasing): Ditto. * calls.c (flags_from_decl_or_type): Removed reference to cgraph_rtl_info. * c-typeck.c (convert_arguments): Make builtins tolerant of having too many arguments. This is necessary for Spec 2000. * cgraph.h (const_function, pure_function): Removed. * common.opt: Added "fipa-pure-const", "fipa-reference", "fipa-type-escape", and "ftree-promote-static". * opts.c: Ditto. * passes.c: Added ipa and tree-promote-statics passes. * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE, TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS. * tree-dfa.c (referenced_var_lookup_if_exists): New function. * tree-flow.h: Added exposed sra calls and addition of reference_vars_info field for FUNCTION_DECLS. * tree-pass.h: Added passes. * tree-sra.c: (sra_init_cache): New function. (sra_insert_before, sra_insert_after) Made public. (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p and made public. * tree-ssa-alias.c (dump_alias_stats): Added stats for type based aliasing. (may_alias_p): Added code to use type escape analysis to improve alias sets. * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and code to prune clobbers of static variables based on information produced in ipa-reference pass. Changed call clobbering so that statics are not marked as clobbered if the call does not clobber them. 2005-07-16 Daniel Berlin * tree-ssa-structalias.c (need_to_solve): Need to check for preds, too. 2005-07-16 Eric Botcazou * doc/install.texi (*-*-solaris2*): Document recommended version of GNU binutils and mention GNU linker problem on Solaris 10. 2005-07-16 Joseph S. Myers PR c/22421 * c-decl.c (c_build_bitfield_integer_type): New function. (finish_struct): Call it. * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types. 2005-07-16 Kaveh R. Ghazi * c-typeck.c (digest_init): Call 'convert_for_assignment' before returning. 2005-07-16 Jan Hubicka * cfg.c (update_bb_profile_for_threading): Fix profile updating. (scale_bbs_frequencies_int): Watch roundoff errors. * predict.c (return_prediction): Initialize return_stmt. 2005-07-16 Jan Hubicka * profile.c (rest_of_handle_branch_prob): Fix handling of estimation after RTL profiling. 2005-07-11 Andrew Pinski PR middle-end/22398 * fold-const.c (build_range_check): Convert high/low to etype if we are only comparing against exp. 2005-07-13 Daniel Berlin Fix PR tree-optimization/22376 * tree-ssa-structalias.c (build_constraint_graph): We really meant special var here. (need_to_solve): New function. (compute_points_to_sets): Use it. 2005-07-15 Jan Hubicka * cfg.c (update_bb_profile_for_threading): More diagnostic. * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block. 2005-07-15 Richard Guenther * c-common.c (handle_flatten_attribute): New function. Add flatten function attribute. * doc/extend.texi: Document flatten function attribute. * Makefile.in (ipa-inline.o): Depend on hashtab.h. * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node): New functions. (cgraph_decide_inlining): Handle functions with flatten attribute. 2005-07-14 David Edelsohn * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC, UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG, UNSPEC_XCHG, UNSPEC_AND): New. (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete. * config/rs6000/sync.md (FETCHOP): New code macro. (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr): New code attrs. (memory_barrier, sync_internal): Use unspec instead of unspec_volatile. (sync_compare_and_swap): Same. (sync_lock_test_and_set): Same. (sync_, sync_nand): Only use rs6000_emit_sync for QImode and HImode, and not PPC405. (sync_old_, sync_old_nand): Same. (sync_new_, sync_new_nand): Same. (sync_{si,di}_internal): New. (sync_nand{si,di}_internal): New. (sync_old_{si,di}_internal): New. (sync_old_nand{si,di}_internal): New (sync_new_{si,di}_internal): New. (sync_new_nand{si,di}_internal): New. (atomic_and{si,di}): New. (sync_new_nand{si,di}_internal): New. (atomic_and{si,di}): New. (sync_add_internal): Delete. (sync_addshort_internal): Use unspec instead of unspec_volatile. (sync_sub_internal): Delte. (sync_subshort_internal): New. (sync_andsi_internal): Use unspec instead of unspec_volatile. (sync_anddi_internal): Delete. (sync_boolsi_internal): Use unspec instead of unspec_volatile. (sync_booldi_internal): Delete. (sync_boolc_internal): Delete. (sync_boolcshort_internal): Use unspec instead of unspec_volatile. (sync_boolc_internal2): Delete. (sync_boolcc_internal): Delete. (isync, lwsync): Use unspec instead of unspec_volatile. * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS. Revert UNSPEC_VOLATILE. (rs6000_split_atomic_op): New. * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare. 2005-07-14 Eric Christopher * config/mips/mips.c (mips_canonicalize_comparison): Cast argument of trunc_int_for_mode to unsigned HOST_WIDE_INT. 2005-07-14 Eric Christopher * config/s390/t-tpf (SHLIB_MAPFILES): Remove. 2005-07-14 Steven Bosscher PR tree-optimization/22230 * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in the computation of the four cross productions for "range op range". 2005-07-14 Alexandre Oliva Ulrich Weigand PR target/20126 * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV in some insn. 2005-07-14 Ulrich Weigand * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition. 2005-07-14 Steve Ellcey * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode. 2005-07-14 Richard Guenther PR middle-end/22347 * config/i386/i386-protos.h (ix86_function_value): Change prototype to match new target hook. * config/i386/i386.c (ix86_value_regno): Change prototype to take extra type argument. (TARGET_FUNCTION_VALUE): Define. (ix86_function_ok_for_sibcall): Pass extra argument to ix86_value_regno, check return slot rtx for exact match. (ix86_function_value): Take extra parameter. Dispatch to ix86_value_regno with fndecl/fntype as provided. (ix86_value_regno): Handle extra type argument. * config/i386/i386.h (FUNCTION_VALUE): No longer define. * testsuite/gcc.target/i386/sseregparm-3.c: New testcase. * testsuite/gcc.target/i386/sseregparm-4.c: New testcase. * testsuite/gcc.target/i386/sseregparm-5.c: New testcase. * testsuite/gcc.target/i386/sseregparm-6.c: New testcase. * testsuite/gcc.target/i386/sseregparm-7.c: New testcase. 2005-07-14 Richard Guenther * Makefile.in (explow.o, reg-stack.o): Depend on target.h. * calls.c (expand_call): Pass fntype to hard_function_value. (emit_library_call_value_1): Likewise. * explow.c: Include target.h. (hard_function_value): Take extra argument, the fntype. Use new target hook for function_value. * expr.h (hard_function_value): Change prototype. * function.c (aggregate_value_p): Pass 0 as fntype to hard_function_value. (assign_parms): Use new target hook for function_value. Pass 0 as fntype to hard_function_value. (expand_function_end): Likewise. * reg-stack.c: Include target.h. (stack_result): Use new target hook for function_value. * target-def.h: New target hook function_value. * target.h: Likewise. * targhooks.c (default_function_value): New function. * targhooks.h (default_function_value): Declare. 2005-07-13 Ian Lance Taylor * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. 2005-07-14 Jan Hubicka * tree-dfa.c (dump_variable): Use default_def function. * tree-ssa-alias.c (dump_points_to_info): Likewise. * tree-ssa.c (verify_use): Likewise. * tree-ssanames.c (release_ssa_name): Likewise. * tree-tailcall.c (eliminate_tail_call): Likewise. (tree_optimize_tail_calls_1): Likewise. * tree-vrp.c (get_value_range): Likewise. 2005-07-14 Ben Elliston * gcc.c (main): Compare language[0] with '*' when iterating over the infiles. 2005-07-13 Adrian Strae½tling * config/s390/s390.c: (s390_cc_modes_compatible): Move before "s390_emit_compare". Add handling of CCZ1mode. (s390_canonicalize_comparison): Simplify cascaded EQ, NE. (390_emit_compare): Use "s390_cc_modes_compatible" for mode checking. (s390_branch_condition_mask): Add CCZ1mode handling. * config/s390/s390.md: ("seq", "*seq"): New pattern. ("sync_compare_and_swap_cc", "*sync_compare_and_swap_cc"): Use CCZ1mode instead of CCZmode. * config/s390/s390-modes.def: Add CCZ1mode. Comment new mode. 2005-07-13 Adrian Strae½tling * config/s390/s390.md: ("cmpstrsi", "*cmpstr"): New pattern. ("strlen", "*strlen"): Use hard reg 0 in SImode. 2005-07-13 Eric Christopher * config/mips/mips.c (mips_canonicalize_comparison): New. (mips_emit_int_relational): Use. 2005-07-13 Eric Christopher * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove static extra parts. * config/s390/s390.md: Include tpf.md. Move tpf specific patterns... * config/s390/tpf.md: To here. * config/s390/s390.opt: Move tpf specific options... * config/s390/tpf.opt: to here. Add mmain option. * config/s390/tpf-unwind.h: Remove unnecessary defines. * config/s390/tpf.h: Rewrite. 2005-07-13 H.J. Lu * doc/tm.texi: Remove @xref{Cross-profiling}. 2005-07-13 Jeff Law * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR expressions, test their _DECL operands for pointer equality rather than using operand_equal_p. 2005-07-13 H.J. Lu * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ... (TARGET_POSIX_IO): This. * config/darwin.h: Likewise. * config/freebsd.h: Likewise. * config/linux.h: Likewise. * config/lynx.h: Likewise. * config/netbsd.h: Likewise. * config/rs6000/linux64.h: Likewise. * config/rs6000/linux.h: Likewise. * config/s390/tpf.h: Likewise. * config/sh/embed-elf.h: Likewise. * config/sparc/linux64.h: Likewise. * config/sparc/linux.h: Likewise. * config/svr4.h: Likewise. * gcov-io.h: Likewise. * doc/tm.texi: Updated. * libgcov.c (create_file_directory): Defined only if TARGET_POSIX_IO is defined. (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO is defined. 2005-07-13 Jan Hubicka * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch. 2005-07-13 David Edelsohn * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed structure as argument. 2005-07-13 Paolo Bonzini PR tree-optimization/21921 * tree-iterator.c (tsi_link_before): Support the case when tsi_end_p (tsi) == true. 2005-07-12 Zdenek Dvorak PR tree-optimization/22442 * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs correctly. 2005-07-12 Zdenek Dvorak PR rtl-optimization/20376 * toplev.c (process_options): Enable -fweb and -frename-registers when unrolling. * doc/invoke.texi: Update the information about when -fweb and -frename-registers are enabled. 2005-07-12 Andrew Pinski PR tree-opt/21840 * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type if *rhs_p is not a SSA_NAME. 2005-07-12 Daniel Berlin Fix PR tree-optimization/22422 * tree-ssa-structalias.c (struct variable_info): Add flag for special vars. (get_varinfo): Now a static function. (new_varinfo): init has_union and is_special_var to false. (solution_set_add): Check has_union. (do_da_constraint): Move temporary variable so it gets reset properly. Also check for special variable. (do_ds_constraint): Ditto. (do_sd_constraint): Ditto. (do_structure_copy): Check for special variable. (find_func_aliases): Ditto. (init_base_vars): Set special vars properly. 2005-07-13 Jan Hubicka * cfgexpand.c (expand_one_stack_var): Do not expand variables when we do unit-at-a-time. * tree-ssa-operands.c (parse_ssa_operands): Fix formatting. (get_expr_operands): Fix thinko wrt flags and subvars. PR tree-optimize/22379 * tree-inline.c (expand_call_inline): Do not output sorry in early inlining. 2005-07-12 Dale Johannesen * config/rs6000.c (rs6000_rtx_cost): Move FLOAT_EXTEND. 2005-07-12 Andrew Pinski PR bootstrap/21704 * host-linux.h: Include limits.h. 2005-07-12 Dale Johannesen * expr.c (compress_float_constant): Add cost check. * config/rs6000.c (rs6000_rtx_cost): Adjust FLOAT_EXTEND cost. 2005-07-12 Dale Johannesen * gcc.target/i386/compress-float-sse.c: New. * gcc.target/i386/compress-float-sse-pic.c: New. * gcc.target/i386/compress-float-387.c: New. * gcc.target/i386/compress-float-387-pic.c: New. * gcc.dg/compress-float-ppc.c: New. * gcc.dg/compress-float-ppc-pic.c: New. 2005-07-12 Eric Christopher * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove static extra parts. * config/s390/s390.md: Include tpf.md. Move tpf specific patterns... * config/s390/tpf.md: To here. * config/s390/s390.opt: Move tpf specific options... * config/s390/tpf.opt: to here. Add mmain option. * config/s390/tpf-unwind.h: Remove unnecessary defines. * config/s390/tpf.h: Rewrite. 2005-07-12 Eric Christopher * gcc.c (struct infile): Update comment for language. (main): Rewrite input file resetting code. 2005-07-12 Andrew Pinski PR tree-opt/22335 * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if requiring a cast in a non RHS of modify_expr. Add a cast when required. (lookup_avail_expr): Use constant_boolean_node instead of boolean_false_node/boolean_true_node. 2005-07-12 Ben Elliston * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string and use it when printing num_edges. 2005-07-12 Bernd Schmidt * doc/extend.texi (Blackfin Built-in Functions): New section. * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the @opindex. 2005-07-12 Adrian Straetling * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp): s/cmpstrsi/cmpstrnsi (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and 'cmpstrnsi'. * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'. (init_optabs): Initialize cmpstrn_optab. * optabs.h: (enum insn_code cmpstrn_optab): Declare. * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation. * expr.c: (enum insn_code cmpstrn_optab): Declare. * config/i386/i386.md: s/cmpstr/cmpstrn * config/c4x/c4x.md: s/cmpstr/cmpstrn * doc/md.texi: Update documentation. 2005-07-11 Richard Henderson * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use build_va_arg_indirect_ref. (alpha_gimplify_va_arg): Likewise. * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise. * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise. * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Likewise. * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. 2005-07-12 Zdenek Dvorak * tree-flow.h (remove_empty_loops, single_dom_exit): Declare. * passes.c (init_optimization_passes): Add pass_empty_loop. * tree-pass.h (pass_empty_loop): Declare. * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop, try_remove_empty_loop, remove_empty_loops): New functions. * tree-ssa-loop-ivopts.c (single_dom_exit): Export. * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New. 2005-07-12 Peter Barada PR middle-end/16719 PR middle-end/18421 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes in address registers. * config/m68k/m68k.c (hard_regno_mode_ok): Likewise. * config/m68k/m68k.md: Replace 's' with 'i' in 4th alternative of addsi3_5200. 2005-07-11 Ian Lance Taylor * config/mips/mips.md (ffs2): Remove. 2005-07-11 Ian Lance Taylor * doc/tree-ssa.texi (Cleanups): Improve description of TRY_FINALLY_EXPR. (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases. 2005-07-11 Daniel Berlin * print-tree.c (print_node): Use DECL_ARGUMENT_FLD. * tree.h (DECL_ARGUMENT_FLD): New macro. 2005-07-11 Daniel Berlin Fix PR tree-optimization/22404 * tree-ssa-structalias.c (create_variable_info_for): Use correct offset. 2005-07-11 Bernd Schmidt * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt, compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand for second comparison operand. * config/bfin/predicates.md (reg_or_const_int_operand): New. * config/bfin/bfin.md (define_attr "type"): Add "sync". (define_insn_reservation "alu"): Likewise. (csync, ssync): Now of type sync. * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to -mcsync-anomaly -mspecld-anomaly. * config/bfin/bfin.opt (mcsync): Remove. (mcsync-anomaly, mspecld-anomaly): Add. * config/bfin/bfin.c: Include "insn-codes.h". (bfin_reorg): Extend to handle the CSYNC anomaly as well. (TARGET_DEFAULT_TARGET_FLAGS): New. * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly. 2005-07-11 Steven Bosscher * basic-block.h: Give the BB flags enum a name, bb_flags. Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK. * cfgcleanup.c (enum bb_flags): Remove here. (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove. (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS. (update_forwarder_flag): Likewise. (thread_jump): Likewise. (try_forward_edges): Likewise. (try_optimize_cfg): Likewise. Clear bb->flags before updating the forwarder flags. Don't clear bb->aux for all basic blocks. Only reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags. 2005-07-11 Richard Guenther * config/i386/i386.opt: New target option -msseregparm. * config/i386/i386.c (override_options): Error out for -msseregparm but no SSE support. (ix86_function_sseregparm): Check for global sseregparm. * doc/invoke.texi: Document -msseregparm. 2005-07-11 Kazuhiro Inaoka * config.gcc (m32r-*-linux*): Use the default extra_parts. (m32rle-*-linux*): Ditto. 2005-07-11 Jakub Jelinek * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type) instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in bytes. 2005-07-10 John David Anglin PR middle-end/22239 PR target/20126 * loop.c (loop_givs_rescan): Use expand_simple_binop instead of gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)). 2005-07-07 Daniel Berlin * tree-ssa-structalias.c (struct variable_info): Heapify complex. (varmap): Heapify varmap. (constraints): Heapify constraints. (struct constraint_graph): Heapify succs and preds. (constraint_vec_find): Update for heapification. (constraint_set_union): Ditto. (insert_into_complex): Ditto. (constraint_edge_vec_find): Ditto. (erase_graph_self_edge): Ditto. (add_graph_edge): Ditto. (get_graph_weights): Ditto. (merge_graph_nodes): Ditto. (build_constraint_graph): Ditto. (topo_visit): Ditto. (solve_graph): Ditto. (create_variable_info_for): Ditto. (init_base_vars): Ditto. (delete_points_to_sets): Free graph, varmap, and complex constraints. (condese_varmap_nodes): Free complex vector. (clear_edges_for_node): Clear succs and preds vector. 2005-07-10 Daniel Berlin * tree-ssa-structalias.c (update_alias_info): Change counting of references to not include vdefs. 2005-07-10 Daniel Berlin * tree-ssa-alias.c (free_used_part_map): Add missing free. (up_insert): Ditto. 2005-07-10 John David Anglin * pa.c (pa_commutative_p): Make PLUS commutative when TARGET_NO_SPACE_REGS is true. 2005-07-09 Diego Novillo * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h * tree-cfg.c (CHECK_OP): Only test for is_gimple_val. * tree-dfa.c (dump_subvars_for): New. (debug_subvars_for): New. (dump_variable): Show subvariables if VAR has them. * tree-flow-inline.h (get_subvar_at): New. (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT. * tree-flow.h (struct ptr_info_def): Remove field pt_malloc. Update all users. (struct subvar): Change fields offset and size to unsigned HOST_WIDE_INT. (dump_subvars_for): Declare. (debug_subvars_for): Declare. (get_subvar_at): Declare. (okay_component_ref_for_subvars): Change 2nd and 3rd argument to unsigned HOST_WIDE_INT *. (overlap_subvar): Likewise. * tree-gimple.c (is_gimple_reg): Always return false for SFTs and memory tags. * tree-pass.h (pass_build_pta, pass_del_pta): Remove. Update all callers. * tree-ssa-alias.c: Include tree-ssa-structalias.h. (compute_may_aliases): Call compute_points_to_sets. (collect_points_to_info_for): Remove. (compute_points_to_and_addr_escape): Remove. (delete_alias_info): Call delete_points_to_sets. (compute_flow_sensitive_aliasing): If the call to find_what_p_points_to returns false, call set_pt_anything. (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias. (set_pt_anything): Clear pi->pt_vars. (set_pt_malloc): Remove. (merge_pointed_to_info): Remove. (add_pointed_to_expr): Remove. (add_pointed_to_var): Remove. (collect_points_to_info_r): Remove. (is_escape_site): Make extern. (create_sft): New. (create_overlap_variables_for): Call it. * tree-ssa-copy.c (merge_alias_info): Never merge flow-sensitive alias information. * tree-ssa-operands.c (get_expr_operands): Adjust variables offset and size to be unsigned HOST_WIDE_INT. (add_to_addressable_set): Rename from note_addressable. Set TREE_ADDRESSABLE as the variables are added to the set. Update all users. (add_stmt_operand): Do not try to micro-optimize unmodifiable operands into VUSEs when adding V_MAY_DEFs for members in an alias set. * tree-ssa-operands.h (add_to_addressable_set): Declare. * tree-ssa-structalias.c: Include tree-ssa-structalias.h last. (struct variable_info): Add bitfield is_heap_var. (var_anyoffset, anyoffset_tree, anyoffset_id): Declare. (new_var_info): Initialize is_heap_var. (get_constraint_for): Add HEAP variables to the symbol table. Mark them with is_heap_var. (update_alias_info): New. Taken mostly from the old compute_points_to_and_addr_escape. (handle_ptr_arith): New. (find_func_aliases): Call update_alias_info. Call handle_ptr_info for tcc_binary expressions. Call mark_stmt_modified. (create_variable_info_for): If DECL has subvars, do not create variables for its subvars. Always add all the fields. (set_uids_in_ptset): If the solution includes ANYOFFSET and SFTs, then add all the SFTs of the structure. If VI->DECL is an aggregate with subvariables, add the SFT at VI->OFFSET. (find_what_p_points_to): If VI is an artificial variable, translate to bitfields in SSA_NAME_PTR_INFO. If the solution is empty, set pi->pt_vars to NULL (init_base_vars): Create ANYOFFSET. (compute_points_to_sets): Rename from create_alias_vars. Make extern. (pass_build_pta): Remove. (delete_points_to_sets): Rename from delete_alias_vars. (pass_del_pta): Remove. * tree-ssa-structalias.h (struct alias_info): Move from tree-ssa-alias.h. (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC, NUM_REFERENCES_SET): Likewise. (compute_points_to_sets, delete_points_to_sets): Declare. 2005-07-09 Richard Henderson * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12, alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12, alpha_split_lock_test_and_set_12): New functions. * config/alpha/alpha-protos.h: Update. * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC, UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO. * config/alpha/sync.md (I12MODE): New. (memory_barrier, mb_internal): Use unspec instead of unspec_volatile. (sync_): Likewise. (sync_nand): Likewise. (sync_old_): Likewise. (sync_new_): Likewise. (sync_old_nand, sync_new_nand): Likewise. (sync_compare_and_swap): Likewise. (sync_lock_test_and_set): Likewise. (sync_compare_and_swap): New. (sync_compare_and_swap_1): New. (sync_lock_test_and_set): New. (sync_lock_test_and_set_1): New. 2005-07-09 Diego Novillo PR 21356 PR 22332 * passes.c (execute_todo): Cleanup the CFG before updating SSA. 2005-07-09 Jakub Jelinek * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT: in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx). 2005-07-09 Richard SAndiford PR target/21656 * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define. 2005-07-08 David Edelsohn * config/rs6000/sync.md (load_locked_): Use Z for memory_operand constraint. (store_conditional_): Same. (sync_compare_and_swap): Same. (sync_lock_test_and_set): Same. 2005-07-08 Hans-Peter Nilsson Rewrite PIC support to more closely model actual instructions. * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol) (cris_symbol): Remove prototypes for removed functions. (cris_pic_symbol_type_of, cris_valid_pic_const) (cris_expand_pic_call_address): Prototypes for new functions. * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused variable. (cris_print_operand) : Remove cases for unused modifiers. : Add case for new punctuation character. : Temporarily set flag_pic = 2 instead of incorrectly emitting (extra) PIC modifier. : Do not assert for PLT. (cris_initial_frame_pointer_offset, cris_simple_epilogue) (cris_expand_prologue, cris_expand_epilogue): Check for pic_offset_table_rtx usage instead of taking current_function_uses_pic_offset_table as the final word. (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok): Remove flag_pic difference. (cris_valid_pic_const, cris_pic_symbol_type_of): New functions, the moral equivalents of... (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove functions. (cris_legitimate_pic_operand): Just call cris_valid_pic_const. (cris_handle_option): Mark ARG as unused. (cris_expand_pic_call_address): New worker function for "call", "call_value". (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not output PIC constructs here. (cris_output_addr_const_extra): Changes for emitting PIC modifiers as symbol-specific modifers, not whole or part of operands. * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case. (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped constants and flag_pic. (CONSTANT_INDEX_P): Adjust for new functions. (enum cris_pic_symbol_type): New helper type. (PRINT_OPERAND_PUNCT_VALID_P): Add ':'. * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL) (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New define_constants. ("movsi"): Emit actual instructions for GOT and relative access. ("*movsi_got_load"): New pattern to set up the register holding the GOT pointer. ("*movsi_internal"): Operand 1 is not a plain general_operand. Adjust FIXME for 'S'. : Sanity-check UNSPEC types for PIC. Use "movs" for -fpic cases. ("addsi3"): Add alternative for 'S'; use adds.w when possible. ("uminsi3","*expanded_call_value"): Remove 'S' alternative. ("call", "call_value"): Just call cris_expand_pic_call_address for PIC addresses. ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"): Remove special pattern. ("*expanded_call_side", "*expanded_call_value_side"): New patterns. (gotplt-to-plt, gotplt-to-plt-side-call) (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New peephole2:s. * config/cris/cris/predicates.md ("cris_general_operand_or_gotless_symbol"): Remove unused predicate. ("cris_general_operand_or_symbol"): Adjust for new functions. 2005-07-08 Andrew Pinski * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1. 2005-07-08 Daniel Berlin * Makefile.in (TREE_H): Add treestruct.def. (c-decl.o): Add pointer-set.h * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at visibility on regular DECL's. (merge_decls): Fix the copying of decl nodes of various types for the new structures. Don't update RTL, section name, weak status, etc, on DECL's without RTL. (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone. Don't check volatile on non-variable types. (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK to check whether we have seen arguments. * c-objc-common.c (c_tree_printer): Reverse order of tests so that flag is checked before field (flag is common, field is not). * dwarf2out.c (decl_ultimate_origin): Only DECL's with TS_DECL_COMMON could have an origin. (add_location_or_const_value_attribute): Don't check section name on non-var/function decls. (dwarf2out_var_location): Reverse order of tests. * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace with DECL_WRTL_CHECK. * expmed.c (make_tree): rtl is now in decl_with_rtl. * fold-const.c (fold_binary): Don't check weakness on non-var/function decls. (tree_expr_nonzero_p): Ditto. (fold_checksum_tree): Use tree_decl_extra as sizeof buffer. * ggc-page.c (extra_order_size_table): Add sizes for tree_decl_non_common, tree_parm_decl, tree_var_decl, and tree_field_decl. * gimplify.c (gimplify_bind_expr): Only set DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL. * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's without RTL. * langhooks-def.h (LANG_HOOK_INIT_TS): New. * langhooks.h (init_ts). New langhook. * passes.c (rest_of_decl_compilation): Reverse order of tests. * print-tree.c (print_node): Update to only print fields that exist in the structures the passed decl has. * toplev.c (wrapup_global_declarations): Don't reset DECL_DEFER_OUTPUT on DECL's that don't contain it. * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed. * tree-inline.c (remap_decl): Ditto. * tree-outof-ssa.c (create_temp): Reverse order of tests. * tree-pretty-print.c (print_declaration): Don't print DECL_REGISTER on things that don't contain it. * tree-vrp.c (expr_computes_nonzero): Don't check weakness on non-var/function decls. * tree.c (tree_contains_struct): New structure. (init_priority_for_decl): New hashtable. (tree_int_map): New structure. (tree_int_map_eq): New function. (tree_int_map_marked_p): Ditto. (tree_int_map_hash): Ditto. (tree_map): Move to tree.h. (tree_map_eq): Externalize. (tree_map_hash): Ditto. (tree_map_marked_p): Ditto. (init_ttree): Set up tree_contains_struct and call langhook. (decl_assembler_name): Use DECL_NON_COMMON_CHECK.. (tree_code_size): Update for new structures. (tree_node_structure): Update for new structures. (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls without the field. (copy_node_stat): Copy init priority. (build_decl_stat): Ditto for visibility. (ts_enum_names): New. (tree_contains_struct_check_failed): New function. (decl_init_priority_lookup): Ditto. (decl_init_priority_insert): Ditto. * treestruct.def: New file. * tree.h (CODE_CONTAINS_STRUCT): New macro. (CONTAINS_STRUCT_CHECK): Ditto. (tree_contains_struct_check_failed): New prototype. (DECL_CHECK): Removed. (DECL_MINIMAL_CHECK): New. (DECL_COMMON_CHECK): Ditto. (DECL_WRTL_CHECK): Ditto. (DECL_NON_COMMON_CHECK): Ditto. (DECL_WITH_VIS_CHECK): Ditto. (VAR_OR_FUNCTION_DECL_P): Ditto (struct tree_decl_minimal): New structure. (struct tree_decl_common): Ditto. (struct tree_decl_with_rtl): Ditto. (struct tree_decl_with_vis): Ditto. (struct tree_decl_non_common): Ditto. (struct tree_field_decl): Ditto. (struct tree_parm_decl): Ditto. (struct tree_var_decl): Ditto. (struct tree_function_decl): Ditto. (struct tree_const_decl): Ditto. (struct tree_result_decl): Ditto. (union tree_node): Add new structures. * var-tracking.c (track_expr_p): Reverse order of tests. * doc/c-tree.texi: Add documentation on DECL node internal structure. 2005-07-08 Kazu Hirata * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC. * system.h: Poison FINALIZE_PIC. * doc/tm.texi (FINALIZE_PIC): Remove. 2005-07-08 Andrew Pinski PR tree-opt/22329 * tree-ssa-propagate.c (fold_predicate_in): Convert the value to the correct type if we have a MODIFY_EXPR. 2005-07-08 Kazu Hirata PR tree-optimization/22360 * tree.c (upper_bound_in_type): Fix calculations for casting to a non-wider signed type and casting a signed value to a wider unsigned type. (lower_bound_in_type): Fix calculations for casting to a non-wider signed type. PR tree-optimization/20139 * tree-cfg.c (remove_bb): Check in_ssa_p before calling release_defs. * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call fold_cond_expr_cond. * tree-ssanames.c (release_defs): Assert in_ssa_p. * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite. 2005-07-08 Andrew Pinski PR tree-opt/22356 * tree-complex.c (expand_complex_libcall): Produce REALPART_EXPR/IMAGPART_EXPR with the correct type. 2005-07-08 Kenneth Zadeck * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a != b" assert and inserted fastpath code for this case. (bitmap_ior): Removed "a != b" assert. 2005-07-08 Kazuhiro Inaoka * config/m32r/linux.h (STARTFILE_SPEC): Support PIE. (ENDFILE_SPEC): Likewise. * config/m32r/m32r.h (ASM_SPEC): Likewise. * config/m32r/m32r.c (m32r_output_function_epilogue): Care for a large stack frame at epilogue. 2005-07-08 David Billinghurst * final.c: Include sdbout.h when required. 2005-07-07 Geoffrey Keating * config.gcc (*-*-darwin*): Only one target-specific header file for generic darwin. (powerpc-*-darwin*): Add version-specific header files. * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp. * config.in: Regenerate. * configure: Regenerate. * gcc.c: Include xregex.h. (version_compare_spec_function): New. (spec_function): Add version-compare. (replace_outfile_spec_function): Reformat comment. (compare_version_strings): New. * config/darwin-c.c (version_as_macro): New. (builtin_define): New. (darwin_cpp_builtins): New. * config/darwin-protos.h (darwin_cpp_builtins): New. * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here. (LIB_SPEC): Make unconditional, update comment. (TARGET_C99_FUNCTIONS): Define. * config/darwin.opt: Sort. (mmacosx-version-min=): New. * config/darwin7.h: Delete. * config/darwin8.h: Delete. * config/i386/darwin.h (): Call darwin_cpp_builtins. * config/rs6000/darwin.h (): Call darwin_cpp_builtins. (TARGET_C99_FUNCTIONS): Define. * config/rs6000/darwin7.h: New. * config/rs6000/darwin8.h: New. * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min= (-mmacosx-version-min): Document. 2005-07-07 Ian Lance Taylor * config/mips/mips.md (abs2) [GPR]: Remove. 2005-07-07 John David Anglin PR middle-end/22239 * loop.c (loop_givs_rescan): Check that v->new_reg is a REG. 2005-07-07 Khem Raj * config/arm/arm.c (thumb_output_function_prologue): Calculate offset in bytes, not words. 2005-07-07 Paul Brook * config/arm/arm.c (arm_pad_arg_upward): Compare return value of DEFAULT_FUNCTION_ARG_PADDING to upward. 2005-07-07 Richard Henderson * function.c (locate_and_pad_parm): Record parameter alignment in stack_alignment_needed. 2005-07-07 David Edelsohn * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete. (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New. (define_attr "type"): Add isync, sync, load_l, store_c. * config/rs6000/sync.md (memory_barrier): Change to define_expand. Create scratch volatile MEM. (sync_internal): New. POWER mnemonic is dcs, not ics. Attribute sync. (load_locked_): New. (store_conditional_): New. (sync_compare_and_swap): Replace with splitter. (sync_lock_test_and_set): Replace with splitter. (sync_): Change to unspec_volatile UNSPECV_SYNC_OP and UNSPECV_ISYNC. (isync): Change to unspec_volatile UNSPECV_ISYNC. POWER mnemonic is ics. Attribute isync. (lwsync): Change to unspec_volatile UNSPECV_LWSYNC. Attribute lwsync. * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE and UNSPECV_SYNC_OP. (emit_unlikely_jump): New. (emit_load_locked): New. (emit_store_conditional): New. (rs6000_split_compare_and_swap): New. (rs6000_split_lock_test_and_set): New. (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L, TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC. * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap, rs6000_split_lock_test_and_set): Declare. * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md, mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l, store_c, isync, sync. 2005-07-07 Kelley Cook * Makefile.in (echo_quoted_to_gtyp): New template for outputing filenames to gtyp-gen.h. (s-typ-gen): Use it in place of for loops. 2005-07-07 J"orn Rennecke * hooks.c (hook_bool_rtx_int_false): New function. * hooks.h (hook_bool_rtx_int_false): Declare. * target-def.h (TARGET_COMMUTATIVE_P): Define. (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P. * target.h (struct gcc_target): Add commutative_p member. * targhooks.c (hook_bool_rtx_commutative_p): New function. * targhooks.h (hook_bool_rtx_commutative_p): Declare. * pa.c (TARGET_COMMUTATIVE_P): Redefine. (pa_commutative_p): New function. * jump.c (target.h): Include. (rtx_renumbered_equal_p): Use targetm.commutative_p. * doc/tm.texi: Document TARGET_COMMUTATIVE_P. 2005-07-07 Adrian Straetling * config/s390/s390-protos.h (s390_expand_clrmem): Delete. (s390_expand_setmem): New. * config/s390/s390.c: Likewise. (print_shift_count_operand): Truncate to 12 bits instead of 6. Adapt comments. * config/s390/s390.md: ("setmem"): Accept character as general_operand. Call new function "s390_expand_setmem". ("clrmem_long", "*clrmem_long"): Rewrite to ... ("setmem_long", "*setmem_long"): ... this. 2005-07-07 Adrian Straetling * config/s390/s390.c: (optimization_options): Enable TARGET_MVCLE at -Os. * doc/invoke.texi: Document changes in default behaviour. * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle". 2005-07-07 Adrian Straetling * expr.c: (set_storage_via_setmem): Convert opchar to mode defined by back-end. 2005-07-07 Jakub Jelinek * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after all sets in the pattern. * config/rs6000/rs6000.md (stack_protect_testsi, stack_protect_testdi): Likewise. 2005-07-06 Jeff Law * tree-vrp.c (simplify_using_ranges): Kill. (vrp_finalize): Remove call to simplify_using_ranges. (simplify_stmt_using_ranges): New function extracted from simplify_using_ranges. (simplify_div_or_mod_using_ranges): Likewise. (simplify_abs_using_ranges): Likewise. (simplify_cond_using_ranges): New function. * tree-flow.h (simplify_stmt_using_ranges): Prototype. * tree-ssa-propagate.c (substitute_and_fold): Call simplify_stmt_using_ranges if we have range information. 2005-07-06 James E. Wilson * config/ia64/ia64.c (ia64_reorg): Check optimize before ia64_flag_schedule_isns2. * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when reading/writing general registers. (ia64_function_arg): Revert 2005-06-18 change. 2005-07-06 John David Anglin * pa.c (legitimize_pic_address): Use gcc_assert instead of abort. (legitimize_tls_address): Use gcc_unreachable instead of abort. 2005-07-06 Kaz Kojima * function.c (expand_function_end): Revert part of 2005-06-27 patch. Do sjlj_emit_function_exit_after after return_label. 2005-07-06 Kazu Hirata * doc/install.texi (--disable-libssp): New. 2005-07-06 Fariborz Jahanian * doc/invoke.texi: Update -fforce-mem documentation. * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove code for -fforce-mem. * expmed.c: (store_bit_field,store_fixed_bit_field, extract_bit_field): Ditto. * expr.c: (convert_move): Ditto. * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop, expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move, emit_conditional_add,expand_float,expand_fix): Ditto. * opts.c: (decode_options): Remove setting of flag_force_mem flag. (common_handle_option): Issue warning when -fforce-mem specified. 2005-07-06 Paul Brook * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last argument is empty. * configure: Regenerate. 2005-07-06 J"orn Rennecke * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09. 2005-07-06 Daniel Berlin Fix PR tree-optimization/22319 Fix PR tree-optimization/22140 Fix PR tree-optimization/22310 * tree-ssa-structalias.c (do_structure_copy): Give up earlier on variable sized types. Use correct type for intermediate structure on *a = *b structure copies. 2005-07-06 Jakub Jelinek * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE): Remove. (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA. (machine_function): Move typedef to... * config/rs6000/rs6000.c (machine_function): ... here. Add varargs_save_offset field. (rs6000_stack_t): Remove varargs_size field. (setup_incoming_varargs): Allocate varargs save area using assign_stack_local, try to make it as small as possible. Save offset from virtual_stack_vars_rtx to the save area in cfun->machine->varargs_save_offset. Use UNITS_PER_FP_WORD instead of magic 8 when fp word byte size is used. (rs6000_va_start): Use cfun->machine->varargs_save_offset instead of -RS6000_VARARGS_SIZE. (rs6000_stack_info, debug_stack_info, rs6000_initial_elimination_offset): Remove all traces of varargs_size. * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove. * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA. 2005-07-06 Zdenek Dvorak PR tree-optimization/21963 * tree-ssa-loop-ivopts.c (get_computation_aff): Use constant_multiple_of in the same way get_computation_cost_at does. 2005-07-06 Jakub Jelinek * config/sparc/sparc.h (sparc_compare_emitted): New extern. * config/sparc/sparc.c (sparc_compare_emitted): New variable. (gen_compare_reg): If sparc_compare_emitted is set, clear it and return its previous value. (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL. * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. (stack_protect_set, stack_protect_test): New expanders. (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi, stack_protect_testdi): New insns. * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define. * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define. 2005-07-06 Jeff Law * tree-ssa-dce.c (cfg_altered): New global. (tree_dce_init): Initialize cfg_altered. (remove_dead_stmt): If we remove an edge in the CFG, then set CFG_ALTERED. (perform_tree_ssa_dce): If we altered the CFG, then invalidate the dominators. 2005-07-06 Kazu Hirata * Makefile.in (stamp-collect-ld): Use $(ORIGINAL_LD_FOR_TARGET) instead of $<. Don't remove ./collect-ld if it already exists. (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<. Don't remove ./nm if it already exists. 2005-07-05 Devang Patel * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number. (LOOP_VINFO_LOC, LOOP_LOC): Remove. * tree-vectorizer.c (vect_loop_location): New. (vect_print_dump_info): Use vect_loop_location. (new_loop_vec_info): Do not set LOOP_VINFO_LOC. (vectorize_loops): Set vect_loop_location. * tree-vect-analyze.c (vect_analyze_offset_expr, vect_determin_vectorization_factor, vect_analyze_operations, vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence, vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment, vect_analyze_data_refs_alignment, vect_analyze_data_ref_access, vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access, vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant, vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized, vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form, vect_analyze_loop): Adjust vect_print_dump_info API. * tree-vect-transform.c (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand, vect_finish_stmt_generation, vectorizable_assignment, vectorizable_operation, vectorizable_store, vectorizable_load, vectorizable_live_operation, vectorizable_condition, vect_transform_stmt, vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound, vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment, vect_transform_loop): Same. * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use, vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops): Same. 2005-07-05 Randolph Chung * configure.ac (hppa*-*-linux*: Check for a TLS capable gas. * configure: Regenerate. * config/pa/pa-protos.h (tls_symbolic_operand): Declare. (pa_tls_referenced_p): Declare. * config/pa/pa.c (legitimize_pic_address): Reject TLS operands. (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New. (legitimize_tls_address): New. (hppa_legitimize_address): Handle TLS addresses. (pa_tls_symbol_ref_1, pa_tls_referenced_p): New. (TARGET_CANNOT_FORCE_CONST_MEM): Define. (emit_move_sequence): Handle TLS addresses. (pa_encode_section_info): Call default handler to handle common sections. * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New. (CONSTANT_ADDRESS_P): Reject TLS operands. (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define. * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM) (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE) (UNSPEC_TLSLE): Define new constants. (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New. * config/pa/predicates.md (symbolic_operand): Reject TLS operands. (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand) (tie_symbolic_operand, tle_symbolic_operand): New 2005-07-06 Kelley Cook * aclocal.m4: Update macros for autoconf 2.59 style. * configure.ac: Likewise. 2005-07-05 John David Anglin * pa.c (function_value): Handle small aggregates on 32-bit targets. (function_arg): Pass small aggregates in general registers on 32-bit targets. * som.h (MEMBER_TYPE_FORCES_BLK): Delete define. 2005-07-05 Andrew Pinski * Makefile.in (final.o): Fix dependencies. 2005-07-05 Joseph S. Myers PR c/22013 PR c/22098 * langhooks.h (struct lang_hooks): Add expr_to_decl. * langhooks.c (lhd_expr_to_decl): New. * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL): New. (LANG_HOOKS_INITIALIZER): Update. * tree.c (recompute_tree_invarant_for_addr_expr): Call expr_to_decl langhook. * c-tree.h (c_expr_to_decl): Declare. * c-typeck.c (c_expr_to_decl): New. (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR specially. * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define. 2005-07-05 Joseph S. Myers PR c/22308 * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY, C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants. 2005-07-05 Paolo Bonzini * Makefile.in: Adjust dependencies. * tree-pass.h: Add new passes and passes formerly in tree-optimize.c. * basic-block.h (duplicate_computed_gotos): Remove, it is now static. * alias.c (rest_of_handle_cfg, pass_cfg): New. * bb-reorder.c (duplicate_computed_gotos): Make it static. * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of rest_of_compilation. * bb-reorder.c (gate_duplicate_computed_gotos, pass_duplicate_computed_gotos, gate_handle_reorder_blocks, rest_of_handle_reorder_blocks, pass_reorder_blocks, gate_handle_partition_blocks, rest_of_handle_partition_blocks, pass_partition_blocks): New. * bt-load.c (gate_handle_branch_target_load_optimize, rest_of_handle_branch_target_load_optimize, pass_branch_target_load_optimize): New. * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2, pass_jump2): New. * cfglayout.c (pass_insn_locators_initialize): New. * cfgrtl.c (pass_free_cfg): New. * combine.c (gate_handle_combine, rest_of_handle_combine, pass_combine): New. * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse, gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New. * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New. * except.c (pass_set_nothrow_function_flags, pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh, pass_rtl_eh): New. * final.c (pass_compute_alignments, rest_of_handle_final, pass_final, rest_of_handle_shorten_branches, pass_shorten_branches, rest_of_clean_state, pass_clean_state): New. * flow.c (pass_recompute_reg_usage, gate_remove_death_notes, rest_of_handle_remove_death_notes, pass_remove_death_notes, rest_of_handle_life, pass_life, rest_of_handle_flow2, pass_flow2): New. * function.c (pass_instantiate_virtual_regs, pass_init_function, rest_of_handle_check_leaf_regs, pass_leaf_regs): New. * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass, pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse, pass_gcse): New. * global.c (rest_of_handle_global_alloc, pass_global_alloc): New. * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion, pass_rtl_ifcvt, gate_handle_if_after_combine, rest_of_handle_if_after_combine, pass_if_after_combine, gate_handle_if_after_reload, rest_of_handle_if_after_reload, pass_if_after_reload): New. * integrate.c (pass_initial_value_sets): New. * jump.c (pass_cleanup_barriers, purge_line_number_notes, pass_purge_lineno_notes): New. * mode-switching.c (rest_of_handle_mode_switching, pass_mode_switching): New. * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New. * loop-init.c (gate_handle_loop2, rest_of_handle_loop2, pass_loop2): New. * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize, pass_loop_optimize): New. * modulo-sched.c (gate_handle_sms, rest_of_handle_sms, pass_sms): New. * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2, pass_gcse2): New. * postreload.c (gate_handle_postreload, rest_of_handle_postreload, pass_postreload_cse): New. * profile.c (gate_handle_profiling, pass_profiling, rest_of_handle_branch_prob, pass_branch_prob): New. * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split, pass_split_before_regstack, gate_handle_split_before_regstack, gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2, rest_of_handle_split_all_insns, pass_split_all_insns): New. * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs, pass_stack_regs): New. * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove, gate_handle_stack_adjustments, rest_of_handle_stack_adjustments, pass_stack_adjustments): New. * regrename.c (gate_handle_regrename, rest_of_handle_regrename, pass_regrename): New. * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots, pass_delay_slots, gate_handle_machine_reorg, rest_of_handle_machine_reorg, pass_machine_reorg): New. * rtl.h (extern void purge_line_number_notes): New. * sched-rgn.c (gate_handle_sched, rest_of_handle_sched, gate_handle_sched2, rest_of_handle_sched2, pass_sched, pass_sched2): New. * tracer.c (gate_handle_tracer, rest_of_handle_tracer, pass_tracer): New. * value-prof.c (gate_handle_value_profile_transformations, rest_of_handle_value_profile_transformations, pass_value_profile_transformations): New. * var-tracking.c (gate_handle_var_tracking, pass_variable_tracking): New. * web.c (gate_handle_web, rest_of_handle_web, pass_web): New. * passes.c (open_dump_file, close_dump_file, rest_of_handle_final, rest_of_handle_delay_slots, rest_of_handle_stack_regs, rest_of_handle_variable_tracking, rest_of_handle_machine_reorg, rest_of_handle_old_regalloc, rest_of_handle_regrename, rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks, rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2, rest_of_handle_regmove, rest_of_handle_tracer, rest_of_handle_if_conversion, rest_of_handle_if_after_combine, rest_of_handle_if_after_reload, rest_of_handle_web, rest_of_handle_branch_prob, rest_of_handle_value_profile_transformations, rest_of_handle_cfg, rest_of_handle_jump_bypass, rest_of_handle_combine, rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2, rest_of_handle_gcse, rest_of_handle_loop_optimize, rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize, rest_of_handle_mode_switching, rest_of_handle_jump, rest_of_handle_eh, rest_of_handle_stack_adjustments, rest_of_handle_flow2, rest_of_handle_jump2, rest_of_handle_peephole2, rest_of_handle_postreload, rest_of_handle_shorten_branches, rest_of_clean_state, rest_of_compilation): Remove. * cgraphunit.c (ipa_passes): Moved from tree-optimize.c. * passes.c (dump_flags, in_gimple_form, all_passes, all_ipa_passes, all_lowering_passes, register_one_dump_file, register_dump_files, next_pass_1, last_verified, execute_todo, execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved from tree-optimize.c. (init_optimization_passes): Moved from tree-optimize.c, adding the RTL optimizations. * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h. * tree-optimize.c (dump_flags, in_gimple_form, all_passes, all_ipa_passes, all_lowering_passes, register_one_dump_file, register_dump_files, next_pass_1, last_verified, execute_todo, execute_one_pass, execute_pass_list, execute_ipa_pass_list, init_tree_optimization_passes, ipa_passes): Delete. * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing the RTL dumps. (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved from tree.h. (ipa_passes): Remove. (all_passes, all_ipa_passes, all_lowering_passes): Now extern. * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved to tree-pass.h. (dump_info_p, dump_flag): Moved to tree-dump.h. * Makefile.in: Adjust dependencies for tree-pretty-print.c, cgraph.c, opts.c. * passes.c (finish_optimization_passes): Use dump_begin and dump_end, TDI_end. (gate_rest_of_compilation): New. (pass_rest_of_compilation): Use it. (gate_postreload, pass_postreload): New. * toplev.c (general_init): Rename init_tree_optimization_passes. * toplev.h (init_tree_optimization_passes): Rename to init_optimizations_passes. * tree-dump.c (dump_flag): Make static. (dump_files): Remove RTL dumps. * tree-optimize.c (pass_all_optimizations, pass_early_local_passes, pass_cleanup_cfg, pass_free_cfg_annotations, pass_cleanup_cfg_post_optimizing, pass_free_datastructures, pass_init_datastructures, pass_fixup_cfg): Make non-static. * tree-pretty-print.c: Include tree-pass.h. * cgraph.c: Include tree-dump.h. 2005-07-04 Daniel Berlin * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var): Only fall back to saying it points to readonly memory if we can't do better. 2005-07-05 Kazuhiro Inaoka * config/m32r/m32r-protos.h: Remove m32r_finalize_pic. * config/m32r/m32r.c (m32r_compute_frame_size, m32r_expand_prologue): Take current_function_profile into account whenever we reference current_function_uses_pic_offset_table. (m32r_finalize_pic): Remove. * config/m32r/m32r.h (FINALIZE_PIC): Likewise. 2005-07-05 Kazu Hirata * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET) instead of $<. Don't remove ./as if it already exists. 2005-07-04 John David Anglin PR target/21723 * pa.md: Remove fcpy alternative from movhi and movqi patterns. * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers for complex modes when generating code for PA 1.0. (VALID_FP_MODE_P): New macro. (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register sets for all general and floating point modes. Align wide floating point modes to even register boundaries to comply with architectural requirements. (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS. * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting. (VALID_FP_MODE_P): New macro. (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register sets for all general and floating point modes. Align wide floating point modes to even register boundaries to comply with architectural requirements. 2005-07-04 Diego Novillo * tree-dump.c (dump_files): Initialize dump number for .cgraph to 0. 2005-07-04 Diego Novillo * tree-ssa-structalias.c: Don't include expr.h. 2005-07-04 Diego Novillo * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix comments. 2005-07-04 Daniel Berlin Fix PR tree-optimization/22279 * tree-ssa-structalias.c (offset_overlaps_with_access): Use correct operator. 2005-07-04 J"orn Rennecke * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t". 2005-07-03 Joseph S. Myers * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c, cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c, config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h, config/stormy16/stormy16.c, config/v850/v850.c, config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c, except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c: Avoid "." or "\n" at end of diagnostics and capital letters at start of diagnostics. * combine.c, cse.c: Don't translate dump file output. * toplev.c (print_version): Only translate output if going to stderr. 2005-07-03 Kazu Hirata * c-decl.c, tree-object-size.c, tree-vectorizer.c, config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment typos. 2005-07-03 John David Anglin * pa.c (fix_range): Fix typo in comment. 2005-07-03 Kazu Hirata * tree-vrp.c (extract_range_from_assert): Replace fold (build (...)) with fold_build2. 2005-07-03 Kaveh R. Ghazi * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs, gcc_gfc_char_table, init_dynamic_gfc_info): New. (format_types_orig, handle_format_attribute): Add support for format "gcc_gfc". 2005-07-03 Gabriel Dos Reis * varasm.c (assemble_variable): Fix format specifier thinko. 2005-07-03 Ira Rosen PR tree-optimization/22029 (and 22135) * tree-pretty-print.c (dump_generic_node): Check that the node is not a phi node before calling dump_vops. 2005-07-02 Gabriel Dos Reis * tree-dump.h (dump_string_field): Declare. * tree-dump.c: Use it instead of dump_string. (dump_string_field): Make non-static. 2005-07-03 Kaz Kojima * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean up the minimal CFG stuff always when optimize > 0. Call split_all_insns_noflow in PIC case if needed. 2005-07-02 Gabriel Dos Reis Christian Ehrhardt PR c++/18279 * c-decl.c (c_write_global_declarations): Dump contents of external scope to. * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl. , , , , , : Add. (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump is enabled. 2005-07-03 Joseph S. Myers * c-common.h (GCC_DIAG_STYLE): Define. * c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC version for format checking to 4.1. * c-format.c: Include toplev.h after c-common.h. (enum format_type): Add gcc_tdiag_format_type. (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs, gcc_tdiag_flag_specs, gcc_tdiag_char_table): New. (format_types_orig): Add gcc_tdiag. (init_dynamic_diag_info): Support gcc_tdiag formats. (handle_format_attribute): Likewise. * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove. (GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC version for format checking to 4.1. (warning0, warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_DIAG. * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c (finish_aliases_1): Do not use %qE. * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c, config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c: Correct format bugs. * config/v850/v850-protos.h (v850_output_aligned_bss): Change size parameter to unsigned HOST_WIDE_INT. * config/v850/v850.c (v850_output_aligned_bss): Likewise. 2005-07-02 David Edelsohn PR middle-end/21742 * expr.c (write_complex_part): Use adjust_address for MEM. (read_complex_part): Same. 2005-07-02 Daniel Berlin Fix PR tree-optimization/22280 * tree-sra.c (generate_element_init): Remove useless loop. 2005-07-02 Richard Henderson * config/alpha/alpha.c (alpha_legitimize_address): Check for TLS_MODEL_NONE. (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars. 2005-07-02 Andrew Pinski PR middle-end/14490 * fold-const.c (fold_binary): Handle the return value of fold_to_nonsharp_ineq_using_bound if we get back the same operand back. Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1". 2005-07-02 Jeff Law * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not a eliminate type conversion which feeds an equality comparison if the original type or either operand in the comparison is a function pointer. 2005-07-02 Joseph S. Myers * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt, config/rs6000/rs6000.opt, params.def: Remove "." from end of help texts. * config/avr/avr.c: Do not use '`' as left quote. * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c: Remove "." from end of diagnostics. Make diagnostics start with lowercase letter. 2005-07-02 Zack Weinberg Joseph S. Myers * toplev.c (default_tree_printer): Handle setting location with '+' flag. * c-objc.common.c (c_tree_printer): Likewise. * c-format.c (gcc_diag_flag_specs): Add '+'. (gcc_cdiag_char_table): Allow '+' flag for tree formats. (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag formats. * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c, config/v850/v850.c, function.c, stor-layout.c, toplev.c, tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end of diagnostics. Use %q+D not %s for a decl. Do not pass excess format arguments where %J is used without %D. 2005-07-02 Jakub Jelinek * gcc.c (LINK_SSP_SPEC): Define. (link_ssp_spec): New variable. (LINK_COMMAND_SPEC): Add %(link_ssp). (static_specs): Add link_ssp_spec. * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test. * configure: Rebuilt. * config.in: Rebuilt. * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define. * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise. * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise. * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise. * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test): If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp. -0x7008(2) instead of reading __stack_chk_guard variable. * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change number. (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants. (stack_protect_set, stack_protect_test): Use *_tls* patterns if TARGET_THREAD_SSP_OFFSET is defined. (stack_tls_protect_set_si, stack_tls_protect_set_di, stack_tls_protect_test_si, stack_tls_protect_test_di): New insns. Revert: 2005-06-27 Richard Henderson * libgcc-std.ver (GCC_4.1.0): New. * libgcc.h (__stack_chk_guard): Declare. (__stack_chk_fail, __stack_chk_fail_local): Declare. * libgcc2.c (L_stack_chk, L_stack_chk_local): New. * mklibgcc.in (lib2funcs): Add them. 2005-07-01 Richard Henderson * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to void * before struct sigcontext *. (x86_fallback_frame_state): Likewise. 2005-07-01 James E. Wilson * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet. 2005-07-01 Andrew Pinski PR tree-opt/22269 * tree-ssa-reassoc.c (should_transpose): Fix which operand we check for SSA_NAME for. 2005-07-01 Daniel Berlin Fix PR tree-optimization/22071 * tree-ssa-structalias.c (offset_overlaps_with_access): New function. (get_constraint_for_component_ref): Use it. 2005-07-01 Andrew Pinski PR other/22264 * diagnostic.c (diagnostic_report_current_module): Use pp_newline to print out the last new line. 2005-07-01 Hans-Peter Nilsson * config/cris/cris.md (CRIS_CC0_REGNUM): New constant. Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM. * config/cris/cris.c (cris_conditional_register_usage): Adjust reg_names[CRIS_CC0_REGNUM] for early CRIS versions. (cris_print_operand) : Handle CRIS_CC0_REGNUM. (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms. * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro. (enum reg_class): New member CC0_REGS. (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS. (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER) (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES) (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS) (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER): Adjust for register now described. 2005-07-01 Jakub Jelinek PR target/22262 * config/i386/i386.md (stack_protect_test_si, stack_protect_test_di): Add earlyclobber for scratch 3. * config/rs6000/rs6000.md (stack_protect_testsi, stack_protect_testdi): Add earlyclobber for scratch 3, remove earlyclobber from scratch 4. Older entries for 2005 can be found in ChangeLog-2005.