X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=68e12d9e7c97a3dbc7fd3ac4943b21426a516925;hp=554930ace333a4edf204c5d7e819d9db7562aef3;hb=15d981b13a4440a2b9312e08852979466175530d;hpb=2d2562dce5c4f81c07de84614168016284906909 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 554930ace33..68e12d9e7c9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,919 @@ +2004-08-18 Zack Weinberg + + * dojump.c (do_jump ): Do not recursively call + self with a TRUTH_ORIF_EXPR; generate the appropriate jump + sequence inline. Move drop_through_label code into this + block, being the only place it is used. Adjust comments. + +2004-08-18 Fariborz Jahanian + + * config/rs6000/altivec.md: Add new patterns for calls to + save_world/rest_world functions. + + * config/rs6000/rs6000-protos.h: (save_world_operation, + restore_world_operation) new declarations. + + * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p + field added. + (rs6000_stack_info): Set world_save_p field. + (save_world_operation): New function. + (restore_world_operation): New function. + (compute_save_world_info): New function. + (rs6000_stack_info): Call compute_save_world_info. + (rs6000_emit_prologue): Check for world_save_p and generate + pattern to call save_world for saving all non-volatile and + special registers. + (rs6000_emit_epilogue): Check for world_save_p and generate + pattern to call rest_world to restore saved registers. + + config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO, + FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined. + (rs6000_reg_names): New entries added for save_world_operation and + restore_world_operation. + +2004-08-18 Caroline Tice + + * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add + "-freorder-blocks-and-partition" to the flags used in second + stage of profiledbootstrap. + * bb-reorder.c (push_to_next_round_p): Add new variable, + next_round_is_last; set and use variable to make sure, when + partitioning, that the last trace construction round consists + of all (and only) cold basic blocks. + (rotate_loop): Don't copy blocks that end in a section + crossing jump. + (copy_bb): Correctly initialize "partition" of duplicated bb. + (add_unlikely_executed_notes): Add a comment. + (find_rarely_executed_basic_blocks_and_crossing_edges): Modify + to make sure, if function contains hot blocks, that the + successors of ENTRY_BLOCK_PTR are hot; also, only look for + crossing edges if the architecture supports named sections. + (mark_bb_for_unlikely_executed_section): Modify to always + insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after + the basic block note insn. + (fix_crossing_unconditional_branches): Remove extra space. + (fix_edges_for_rarely_executed_code): Modify to only do + partitioning work if the architecture supports named sections. + (reorder_basic_blocks): Modify to only add + NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture + supports named sections. + * c-common.c (handle_section_attribute): Initialize new global + variable, user_defined_section_attribute, to true if user has + specified one. + * cfgcleanup.c (try_forward_edges): Modify to not attempt to + forward edges that cross section boundaries. + * cfglayout.c (fixup_reorder_chain): Modify to only fix up + partitioning information if the architecture supports named + sections. + * cfgrtl.c (target.h): Add statement to include this. + (rtl_split_block): Make sure newly created bb gets correct + partition. + (try_redirect_by_replacing_jump): Make sure redirection isn't + attempting to cross section boundaries. + (force_nonfallthru_and_redirect): Only do partition fix up if + architecture supports named sections. + (rtl_split_edge): Make sure newly created bb ends up in + correct partition. + (commit_one_edge_insertion): Remove code that incorrectly + updated basic block partition; Make sure partition fix up only + happens if architecture supports named sections and it's not + already done. + (rtl_verify_flow_info_1): Fix if-condition on test/error + condition that fallthru edges are not allowed to cross section + boundaries. + * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this. + * final.c (final_scan_insn): Remove redundant test from if-statement; + change calls to text_section into calls to function_section; add code + to only to partitioning fix up if architecture supports named + sections. + * ifcvt.c (find_if_case_1): Make sure newly created bb has correct + partition. + (if_convert): Add targetm.have_named_sections to test. + * output.h (unlikely_section_label): Extern declaration for new global + variable. + (unlikely_text_section_name): Likewise. + * opts.c (decode_options): If both partitioning and DWARF debugging + are turned on, issue a warning that this doesn't work, and change + partitiong to basic block reordering (without hot/cold partitions). + * passes.c (rest_of_handle_final): Re-set new global variable, + user_defined_section_attribute, to false. + (rest_of_compilation): Change options for calling partitioning + function: Don't call if the user defined the section attribute, and + don't call if DECL_ONE_ONLY is true for the current function. + * predict.c (choose_function_section): Return immediately if we + are doing hot/cold partitioning (i.e. let the basic block partitioning + determine where the function belongs). + * reg-stack.c (emit_swap_insn): Add condition to step over + NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. + * toplev.c (user_defined_section_attribute): New global variable. + * toplev.h (user_defined_section_attribute): Extern declaration for new + global variable. + * varasm.c (unlikely_section_label): New global variable. + (unlikely_text_section_name): New global variable. + (unlikely_text_section): Add code to initialize unlikely_text_section_name + if necessary; modify to use unlikely_text_section_name and + unlikely_section_label; also to use named_section properly. + (in_unlikely_text_section): Modify to work correctly with named_section + and to use unlikely_text_section_name. + (named_section): Add code to work properly with cold section. + (function_section): Clean up if-statement. + * config/darwin.c (darwin_asm_named_section): Return to original code, + removing use of SECTION_FORMAT_STRING. + * config/arm/pe.h (switch_to_section): Add case for + in_unlikely_executed_text to switch statement. + * config/i386/cygming.h (switch_to_section): Likewise. + * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. + (SECTION_FORMAT_STRING): Likewise. + * config/mcore/mcore.h (switch_to_section): Likewise. + * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. + (SECTION_FORMAT_STRING): Remove. + +2004-08-18 Roger Sayle + + * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be + -ffixed-reg safe, by preserving the meanings of zero and one. + (CALL_USED_REGISTERS): Likewise. + (CONDITIONAL_REGISTER_USAGE): Update to process new encodings. + +2004-08-18 Kaz Kojima + + * config/sh/sh.c (split_branches): Check the result of + next_active_insn. + (sh_output_mi_thunk): Call init_flow if basic_block_info is null. + Call rtl_register_cfg_hooks. + +2004-08-18 Richard Henderson + + * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P. + * alias.c (true_dependence): Update to match new semantics. + (canon_true_dependence, write_dependence_p): Likewise. + (anti_dependence, output_dependence): Update write_dependence_p args. + (unchanging_anti_dependence): Remove. + * calls.c (purge_mem_unchanging_flag): Remove. + (fixup_tail_calls): Don't call it. + (expand_call): Don't add unchanging memory to function usage. + * expr.c (emit_block_move_via_libcall): Likewise. + (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems. + (get_subtarget): Don't use RTX_UNCHANGING_P. + (expand_assignment, store_constructor, expand_expr_real_1): Likewise. + (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P. + * combine.c (get_last_value_validate): Use MEM_READONLY_P. + * cse.c (insert): Don't use RTX_UNCHANGING_P. + (cse_insn, canon_hash): Use MEM_READONLY_P. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P + instead of RTX_UNCHANGING_P. + * explow.c (maybe_set_unchanging): Remove. + * expr.h (maybe_set_unchanging): Remove. + * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence. + * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P. + (assign_parm_setup_reg, expand_function_start): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + * ra-rewrite.c (emit_colors): Likewise. + * regmove.c (copy_src_to_dest, regmove_optimize): Likewise. + (fixup_match_1): Likewise. + * reload1.c (reload, alter_reg): Likewise. + * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P, + not RTX_UNCHANGING_P. + (equiv_init_varies_p): Likewise. + * loop-invariant.c (check_maybe_invariant): Likewise. + * resource.c (mark_referenced_resources, mark_set_resources): Likewise. + * loop.c (note_addr_stored): Likewise. + (prescan_loop): Likewise. Don't check function usage for clobbered + unchanging memory. + * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P, + not RTX_UNCHANGING_P. + (rtx_varies_p, modified_between_p, modified_in_p): Likewise. + * varasm.c (force_const_mem): Likewise. + * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P. + * web.c (entry_register): Likewise. + * tree-gimple.h (get_base_address): Move decl ... + * tree.h: ... here. + * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P. + + * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be + called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too. + (alpha_set_memflags): Update to match. + + * config/darwin.c (machopic_indirect_data_reference): Set + MEM_READONLY_P instead of RTX_UNCHANGING_P. + (machopic_indirect_call_target): Likewise. + (machopic_legitimize_pic_address): Likewise. + * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple, + arm_gen_store_multiple, arm_gen_movmemqi): Likewise. + * config/arm/arm.md (load_multiple, store_multiple): Likewise. + * config/frv/frv.md (symGOT2reg): Likewise. + * config/i386/i386.c (legitimize_pic_address, + legitimize_tls_address, ix86_split_to_parts): Likewise. + * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. + * config/ia64/ia64.md (load_fptr): Likewise. + * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise. + * config/m68k/m68k.c (legitimize_pic_address): Likewise. + * config/mcore/mcore.c (block_move_sequence): Likewise. + * config/mn10300/mn10300.md (symGOT2reg): Likewise. + * config/pa/pa.c (legitimize_pic_address): Likewise. + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. + (rs6000_emit_move): Likewise. + * config/s390/s390.c (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + * config/s390/s390.md (casesi): Likewise. + * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise. + * config/sh/sh.md (symGOT2reg): Likewise. + * config/sparc/sparc.c (legitimize_pic_address): Likewise. + * config/v850/v850.md (casesi): Likewise. + + * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P. + * config/iq2000/iq2000.c (save_restore_insns): Likewise. + * config/mips/mips.c (mips_restore_gp): Likewise. + (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise. + * config/sh/sh.c (sh_reorg): Likewise. + +2004-08-18 Richard Henderson + + * tree.h (struct tree_decl): Add gimple_formal_temp. + (DECL_GIMPLE_FORMAL_TEMP_P): New. + * gimplify.c (pop_gimplify_context): Clear it. + (lookup_tmp_var): Set it, if is_formal. + (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX. + Use is_gimple_val for VECTOR. Simplify return value. + (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P. + (gimplify_expr): Likewise. + * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from + is_gimple_tmp_rhs for clarity. Update all callers. + (is_gimple_reg_rhs): Simplify logic. + (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for + clarity; use DECL_GIMPLE_FORMAL_TEMP_P. + (is_gimple_formal_tmp_reg): Similarly. + * tree-gimple.h: Update decls. + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use + DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting. + * tree-ssa-live.c (var_union, type_var_init): Likewise. + +2004-08-18 Paolo Bonzini + + * c4x.c (legitimize_operands): Remove calls to + preserve_subexpressions_p. + +2004-08-18 David Edelsohn + + * varasm.c (MAX_OFILE_ALIGNMENT): Move ... + * defaults.h (MAX_OFILE_ALIGNMENT): ... here. + +2004-08-18 Ziemowit Laski + + * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii" + Objective-C++ extensions. + * gengtype.c (get_file_basename): Match entire subdirectory name + ('cp', 'objc', 'objcp') rather than just its suffix. + (get_base_file_bitmap): Allow for files to belong to more than one + language. + (get_output_file_with_visibility): Treat objc/objc-act.h as a header + used by more than one front-end. + +2004-08-18 Richard Earnshaw + + * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to + avoid use of preserve_subexpressions_p. + +2004-08-17 Richard Henderson + + PR 17051 + * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too. + +2004-08-17 DJ Delorie + + * doc/extend.texi: Document new xstormy16 attribute. + + * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New. + (xstormy16_splittable_below100_or_register): New. + (combine_bnp): New. + (xstormy16_reorg): New. + (TARGET_MACHINE_DEPENDENT_REORG): Define. + + + * config/stormy16/stormy16.md (movqi_internal): Make name public. + (movhi_internal): Likewise. + (cbhranchhi): Likewise. + (cbhranchhi_neg): Likewise. + (andhi3): Only allow splittable below100 operands. + (iorhi3): Likewise. + (peephole2): New and/zero_extend->and peephole. + (peephole2): New load/ior/save->set1 peephole. + (peephole2): New load/and/save->clr1 peephole. + (bclrx, bclrx2, bclr7, bclr15): New. + (bsetx, bsetx2, bset7, bset15): New. + + * config/stormy16/stormy16.c (xstormy16_print_operand): Be more + liberal about acceptable 'B' masks. + + * config/stormy16/stormy16-protos.h + (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, + xstormy16_below100_operand, xstormy16_below100_or_register, + xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. + (PREDICATE_CODES): Add new predicates. + + * config/stormy16/stormy16.c + (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, + xstormy16_below100_operand, xstormy16_below100_or_register, + xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. + (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New. + (xstormy16_legitimate_address_p): Allow below100 symbols. + (xstormy16_extra_constraint_p): Add 'W' for below100 operands. + (xstormy16_expand_move): Leave below100 operands as-is. + (xstormy16_encode_section_info): Encode below100 symbols. + (xstormy16_strip_name_encoding): New. + (xstormy16_print_operand): Print 'b' as shift mask. + (xstormy16_attribute_table): Add below100 attributes. + (xstormy16_handle_below100_attribute): New. + + * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100. + (XSTORMY16_SECTION_FUNCTION): New. + (EXTRA_SECTION_FUNCTIONS): Define using the above. + (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. + (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols. + (ASM_OUTPUT_LABELREF): Define. + + * config/stormy16/stormy16.md (movqi_internal): Add below100 support. + (movhi_internal): Add below100 support. + (andhi3): Add below100 support. + (iorhi3): Add below100 support. + (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New. + +2004-08-17 James E Wilson + + * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead + of VOIDmode for comparison code mode. + * config/mips/mips.md: For conditional move patterns, use mode of + first compare operand for comparison mode, instead of VOIDmode. + + * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both + normal and -ffast-math code. + +2004-08-17 Mark Mitchell + + PR c++/15871 + * doc/invoke.texi (-fkeep-inline-functions): Update documentation. + +2004-08-17 Robert Bowdidge + + * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags. + +2004-08-17 Andreas Tobler + + * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause + for non Darwin targets. + (*call_value_nonlocal_darwin64): Likewise. + +2004-08-17 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_function_value): Check for + altivec mode for altivec return register. + +2004-08-17 David Edelsohn + + Revert 2004-08-16 Stan Shebs + * config/darwin.c (macho_indirect_data_reference): Add DImode case. + * config/rs6000/rs6000.md: Include darwin.md. + (builtin_setjmp_receiver): Add DImode case. + * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to + Darwin bits. + +2004-08-17 Dorit Naishlos + + * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees. + * tree-vectorizer.h: New File: Same. + * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files. + * common.opt (ftree-vectorize): New flag to enable vectorization. + * timevar.def (TV_TREE_VECTORIZATION): New dump file for vectorization + pass. + * tree-data-ref.h (init_data_ref): Additional argument. + (array_base_name_differ_p): Moved to tree-data-ref.c. + * tree-data-ref.c (array_base_name_differ_p): Revised. + (initialize_data_dependence_relation): Call array_base_name_differ_p + with an extra argument. + (analyze_all_data_dependences): Same. + (init_data_ref): Additional argument is_read to set DR_IS_READ. + * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this file. + * tree-flow.h (vectorize_loops, empty_block_p): Add declaration. + * tree-optimize.c (pass_vectorize): Schedule the vectorization pass. + * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new + vectorization pass. + * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize. + (tree_ssa_loop_done): Call scev_finalize. + (tree_vectorize): Define the new vectorization pass. + * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the size of + the vector they support (until support for multiple vector sizes is + added to the vectorizer). + * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define. + * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define. + * invoke.texi (fdump-tree-vect, ftree-vectorize): Add + documentation. + +2004-08-17 Nathan Sidwell + + * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst + usage. + (generate_protocol_list, handle_impent): Likewise. + +2004-08-17 Roger Sayle + + * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to + ensure that call_used_regs is a superset of both fixed_regs and + call_really_used_regs. + +2004-08-17 Daniel Bornstein + + PR target/17019 + * arm.md (addsi3_cbranch_scratch): Correct case labels. + +2004-08-17 Paolo Bonzini + + PR middle-end/17036 + * fold-const.c (fold): Check for integer operand when + folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew + Pinski . + +2004-08-17 Paolo Bonzini + + * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO. + No need to check if in a cross configuration. + * configure: Regenerate. + + * calls.c (precompute_register_parameters): + Inline preserve_subexpressions_p (). + * expmed.c (expand_mult_const, emit_store_flag): Likewise. + * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn): + Likewise. + * expr.c (get_subtarget): Likewise. + * rtl.h (preserve_subexpressions_p): Remove. + * stmt.c (preserve_subexpressions_p): Remove. + + * dojump.c (do_jump) : + Abort on gimplified cases. + +2004-08-16 James E Wilson + + * tree.h (VECTOR_FLOAT_TYPE_P): New. + (FLOAT_TYPE_P): Use it. + * c-typeck.c (build_binary_op): After convert calls, check for + check for ERROR_MARK operands. + +2004-08-16 Zack Weinberg + + * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete. + (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update. + (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o. + (genobjs static pattern rule): Remove %.c dependency. + ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o): + Rename rules; delete commands; fix dependencies. + (mostlyclean): Do not delete temporary source copies. + * configure.ac: Delete all references to BUILD_PREFIX and + BUILD_PREFIX_1. + * configure: Regenerate. + + * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE. + Do not include tree.h, real.h, flags.h, hard-reg-set.h, or + basic-block.h #ifdef GENERATOR_FILE. Surround some more code + with #ifndef GENERATOR_FILE so that nothing from those headers + is used. + + * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE. + +2004-08-16 Adam Nemet + + * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB). + +2004-08-16 Andrew Pinski + + * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove + extraneous semicolon. + +2004-08-16 Devang Patel + + * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P. + * print-tree.c (print_node): Print DECL_PRESERVE_P. + * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define. + (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED + * target.h (struct gcc_target): New member, mark_decl_preserved. + * hooks.c (hook_void_charptr): Rename to ... + (hook_void_constcharptr): ... new name. + * hooks.h (hook_void_charptr): Rename to .. + (hook_void_constcharptr): ... new name. + * tree.h (DECL_PRESERVE_P): New #define. + (struct tree_decl): New member, preserve_flag. + * varasm.c (assemble_start_function): Mark decl preserved. + (assemble_variable): Same. + * darwin.c (darwin_mark_decl_preserved): New function. + * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define. + * darwin-protos.h (darwin_mark_decl_preserved): New decl. + * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document. + +2004-08-16 Joseph S. Myers + + * c-decl.c (grokdeclarator): Allow for function definition where + innermost declarator has attributes. + +2004-08-16 Fariborz Jahanian + + * except.c (get_exception_filter, build_post_landing_pads, + dw2_build_landing_pads): Use target-specific mode for 'filter'. + * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used. + * target.h (eh_return_filter_mode): New field added. + * targhooks.c (default_eh_return_filter_mode): Defined. + * targhooks.h (default_eh_return_filter_mode): Declared. + * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined. + +2004-08-16 Nathanael Nerode + + * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with + ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST. + * configure: Regenerate. + +2004-08-16 Stan Shebs + + Basic support for 64-bit Darwin. + * config/darwin.c (macho_indirect_data_reference): Add DImode case. + (machopic_legitimize_pic_address): Similarly, plus use Pmode + instead of SImode. + * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit. + (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro. + (SUBTARGET_SWITCHES): Add -m32 and -m64 flags. + (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64. + (PROCESSOR_DEFAULT64): Define. + * config/rs6000/darwin.md: New file, patterns specific to 64-bit + Darwin. + * config/rs6000/rs6000.md: Include darwin.md. + (builtin_setjmp_receiver): Add DImode case. + * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for + Darwin. + (TARGET_ASM_ALIGNED_DI_OP): Ditto. + (rs6000_emit_move): Add DImode case to Darwin bits. + (machopic_output_stub): Use .quad if 64-bit. + * invoke.texi: Document -m32 and -m64. + +2004-08-16 Janis Johnson + + * doc/extend.texi (AltiVec builtins): Document additional differences + from the Motorola AltiVec PIM. + +2004-08-16 Nathan Sidwell + + * c-typeck.c (build_c_cast): Only copy overflow from expr nodes. + * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify. + (struct tree_common): Update public_flag documentation. + +2004-08-16 Nathanael Nerode + + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Check for artificial variables, not is_gimple_tmp_var. + * tree-ssa-live.c (var_union): Likewise. + +2004-08-16 Nathan Sidwell + + * calls.c (load_register_parameters): Remove spurious FIXME token. + +2004-08-15 Ziemowit Laski + + * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h. + (c-lang.o): Depend on c-objc-common.h. + (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and + c-objc-common.h; remove duplicate $(C_TREE_H) dependency. + * c-lang.c: Include c-objc-common.h. + (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, + LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, + LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, + LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, + LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, + LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, + LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, + LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, + LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, + LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, + LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, + LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, + LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, + LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, + LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, + LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, + LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, + LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, + LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, + LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, + LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, + LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, + LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, + LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): + Move to c-objc-common.h. + * c-objc-common.c: Include c-objc-common.h. + * c-objc-common.h: New file. + +2004-08-15 Andreas Tobler + Andrew Pinski + + PR target/14931 + * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub + style. + +2004-08-15 Nathan Sidwell + + * tree.h (build_int_cst): New. + (build_int_2): Remove. + * tree.c (build_int_2): Remove. + (build_int_cst): New. + (make_vector_type, build_common_tree_nodes, + build_common_tree_nodes_2): Use build_int_cst. + * builtins.c (expand_builtin_prefetch, expand_builtin_strstr, + expand_builtin_strpbrk, expand_builtin_fputs, + build_string_literal, expand_builtin_printf, + expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop, + fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii, + fold_builtin_isdigit, simplify_builtin_strstr, + simplify_builtin_strpbrk, fold_builtin_fputs, + simplify_builtin_sprintf): Use build_int_cst. + * c-common.c (start_fname_decls, fix_string_type, + c_common_nodes_and_builtins, c_init_attributes, + shorten_compare): Likewise. + * c-decl.c (complete_array_type, + check_bitfield_type_and_width): Likewise. + * c-lex.c (interpret_integer, lex_charconst): Likewise. + * c-parse.in (primary): Likewise. + * c-pretty-print.c (pp_c_integer_constant): Likewise. + * c-typeck.c (really_start_incremental_init, push_init_level, + set_nonincremental_init_from_string): Likewise. + * calls.c (load_register_parameters): Likewise. + * convert.c (convert_to_pointer): Likewise. + * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref, + build_fn_info_type, build_ctr_info_value, build_gcov_info): + Likewise. + * except.c (init_eh, assign_filter_values, assign_filter_values): + Likewise. + * expmed.c (store_fixed_bit_field, extract_bit_field, + extract_fixed_bit_field, extract_split_bit_field, expand_shift, + expand_mult_const, expand_mult_highpart_adjust, extract_high_half, + expand_sdiv_pow2, expand_divmod, make_tree): Likewise. + * expr.c (convert_move, emit_group_load, emit_group_store, + expand_assignment, store_constructor, store_field, + expand_expr_real_1, reduce_to_bit_field_precision): Likewise. + * fold-const.c (force_fit_type, int_const_binop, fold_convert_const, + invert_truthvalue, optimize_bit_field_compare, + decode_field_reference, all_ones_mask_p, constant_boolean_node, + fold_div_compare, fold, fold_read_from_constant_string, + fold_negate_const, fold_abs_const, fold_not_const): Likewise. + * function.c (assign_parm_setup_block): Likewise. + * stmt.c (shift_return_value, expand_end_case_type, + estimate_case_costs): Likewise. + * stor-layout.c (layout_type, initialize_sizetypes, + set_min_and_max_values_for_integral_type): Likewise. + * tree-chrec.c (chrec_fold_multiply_poly_poly, + reset_evolution_in_loop): Likewise. + * tree-chrec.h (build_polynomial_chrec): Likewise. + * tree-complex.c (build_replicated_const): Likewise. + * tree-eh.c (honor_protect_cleanup_actions, + lower_try_finally_onedest, lower_try_finally_copy, + lower_try_finally_switch): Likewise. + * tree-mudflap.c (mf_build_string, mx_register_decls, + mudflap_register_call, mudflap_enqueue_constant): Likewise. + * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref): + Likewise. + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. + * tree-ssa-loop-niter.c (number_of_iterations_cond, + loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type): + Likewise. + + * config/alpha/alpha.c (alpha_initialize_trampoline, + alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst. + * config/arm/arm.c (arm_get_cookie_size): Likewise. + * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. + * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. + * config/i860/i860.c (i860_va_start): Likewise. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. + * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start, + mips_gimplify_va_arg_expr): Likewise. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. + * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg, + add_compiler_branch_island): Likewise. + * config/s390/s390.c (s390_va_start): Likewise. + * config/sh/sh.c (sh_va_start): Likewise. + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): + Likewise. + * config/xtensa/xtensa.c (xtensa_va_start, + xtensa_gimplify_va_arg_expr): Likewise. + + * objc/objc-act.c (build_objc_string_object, + build_objc_symtab_template, init_def_list, init_objc_symtab, + init_module_descriptor, generate_static_references, + build_selector_translation_table, get_proto_encoding, + build_typed_selector_reference, build_selector_reference, + build_next_objc_exception_stuff, + build_method_prototype_list_template, generate_descriptor_table, + generate_protocols, build_protocol_initializer, + build_ivar_list_template, build_method_list_template, + build_ivar_list_initializer, generate_ivars_list, + generate_dispatch_table, generate_protocol_list, + build_category_initializer, build_shared_structure_initializer, + generate_shared_structures, handle_impent, + generate_objc_image_info): Use build_int_cst. + +2004-08-15 Ben Elliston + + * vec.h: Comment improvements. + +2004-08-14 Roger Sayle + + * c-common.c (shorten_compare, pointer_int_sum, + c_common_truthvalue_conversion, boolean_increment): Replace calls + to build with calls to buildN. + * c-decl.c (complete_array_type, grokdeclarator): Likewise. + * c-gimplify.c (c_build_bind_expr, gimplify_c_loop, + gimplify_switch_stmt): Likewise. + * c-typeck.c (default_function_array_conversion, + build_component_ref, build_array_ref, build_function_call, + pointer_diff, build_unary_op, build_conditional_expr, + build_compound_expr, build_modify_expr, c_finish_goto_label, + c_finish_goto_ptr, c_finish_return, c_finish_loop, + c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt, + build_binary_op): Likewise. + +2004-08-15 Steven Bosscher + + * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK. + +2004-08-14 John David Anglin + + * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h, + curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h. + * fixinc/fixincl.x: Rebuilt. + +2004-08-14 Richard Sandiford + + * config/mips/mips-protos.h (mips_symbolic_constant_p) + (mips_atomic_symbolic_constant_p, mips_stack_address_p) + (mips_small_data_pattern_p): Declare. + * config/mips/mips.h (CONST_GP_P): Moved from mips.c. + (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete. + * config/mips/mips.c (mips_symbolic_constant_p): Make global. + (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions. + (uns_arith_operand, const_arith_operand, arith_operand, sle_operand) + (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand) + (reg_or_const_float_1_operand, hilo_operand, extend_operator) + (macc_msac_operand, equality_op, cmp_op, trap_cmp_op) + (pc_or_label_operand, call_insn_operand, move_operand) + (consttable_operand, symbolic_operand, general_symbolic_operand) + (global_got_operand, local_got_operand, stack_operand) + (fp_register_operand, lo_operand, fcc_register_operand): Delete. + (mips_small_data_pattern_1): Renamed from small_data_pattern_1. + (mips_small_data_pattern_p): Replace previous small_data_pattern + predicate. Turn into a bool () (rtx) function. + * config/mips/predicates.md: New file. + * config/mips/mips.md: Include it. Use the target-independent + comparison_operator instead of cmp_op. Rename trap_cmp_op to + trap_comparison_operator and equality_op to equality_operator. + Replace uses of small_int with the equivalent const_arith_operand. + Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename + const_float_1_operand to const_1_operand. Rename fcc_register_operand + to fcc_reload_operand. + * config/mips/sb1.md: Rename fp_register_operand to fpr_operand. + +2004-08-14 John David Anglin + + PR libstdc++/17005 partial fix. + * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE + except when generating ANSI/C89 code. + +2004-08-14 Nathan Sidwell + + * c-common.c (shorten_compare): Use force_fit_type directly. + +2004-08-14 Gerald Pfeifer + Dimitri Papadopoulos-Orfanos + Dave Korn + + * doc/install.texi (Building): Avoid duplicate reference to GNU + make requirement. + (*-*-solaris2*): Do not recommend GNU make any longer. Simplify. + +2004-08-14 Richard Henderson + + * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types. + * config/alpha/alpha.c (function_value): Use PROMOTE_MODE. + +2004-08-13 Richard Henderson + + * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode + for constant_call_address_operand. + (call_value_pop_1, call_value_1): Likewise. + (sibcall_value_1, call_value_1_rex64): Likewise. + +2004-08-13 James E Wilson + + * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe): + Correct mode from SFmode to DFmode. + +2004-08-13 Ziemowit Laski + + * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup, + __cstring_object and __image_info sections with the no_dead_strip + attribute. + +2004-08-13 Roger Sayle + David Billinghurst + + PR libgfortran/15930 + * fixinc/inclhack.def (irix___generic1, irix___generic2): New. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/internal/math_core.h: New file. + +2004-08-13 Richard Henderson + + * dbxout.c (NO_DBX_FUNCTION_END): Default to zero. + (dbxout_function_end): Remove ifdefs for it. + (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions. + +2004-08-13 Richard Henderson + + * Makefile.in (insn-preds.o): Depend on TREE_H. + * genpreds.c (write_insn_preds_c): Include tree.h. + * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand, + reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand, + const48_operand, and_operand, or_operand, mode_width_operand, + mode_mask_operand, mul8_operand, const0_operand, + hard_fp_register_operand, hard_int_register_operand, + reg_or_cint_operand, some_operand, some_ni_operand, input_operand, + samegp_function_operand, direct_call_operand, small_symbolic_operand, + global_symbolic_operand, call_operand, symbolic_operand, + dtp16_symbolic_operand, dtp32_symbolic_operand, + gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand, + gottp_symbolic_operand, alpha_comparison_operator, + alpha_zero_comparison_operator, alpha_swapped_comparison_operator, + signed_comparison_operator, alpha_fp_comparison_operator, + divmod_operator, fix_operator, aligned_memory_operand, + unaligned_memory_operand, reg_or_unaligned_mem_operand, + any_memory_operand, reg_not_elim_operand, normal_memory_operand, + reg_no_subreg_operand, addition_operation): Move to predicates.md. + (reg_or_const_int_operand): Remove. Replace all users with + reg_or_cint_operand. + (tls_symbolic_operand_1): Export. Don't check mode or for CONST. + (resolve_reload_operand): Split out of aligned_memory_operand. + * config/alpha/alpha-protos.h: Update for exports. + * config/alpha/alpha.h (PREDICATE_CODES): Remove. + * config/alpha/alpha.md: Include predicates.md. + * config/alpha/predicates.md: New file. + +2004-08-13 Richard Sandiford + + * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno + fields with a pointer to the instruction definition. + (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent) + (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get) + (write_attr_case, write_const_num_delay_slots): Update accordingly. + (write_attr_case, write_const_num_delay_slots): Write the name of + an insn next to its case statement. + * genoutput.c (data): Add a filename field. + (gen_insn, gen_peephole, gen_expand, gen_split): Set it. + (output_insn_data): Print the location of each insn definition. + * genrecog.c (write_action): Print the name of an insn above + the statement that returns its code. + +2004-08-12 Andrew Pinski + + * config/darwin-c.c (find_subframework_file): Fix spelling of cannot. + * config/libgloss.h: Likewise. + * config/arm/arm.c (arm_gen_load_multiple): Likewise. + * c4x/c4x-modes.def: Likewise. + * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise. + (c4x_rptb_nop_p): Likewise. + (c4x_rptb_valid_p): Likewise. + (c4x_rptb_insert): Likewise. + (c4x_address_conflict): Likewise. + * config/c4x/c4x.md: Likewise. + * config/frv/frv.md: Likewise. + * config/i386/athlon.md: Likewise. + * config/i386/i386.md: Likewise. + * config/i386/predicates.md: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/itanium1.md: Likewise. + * config/ia64/itanium2.md: Likewise. + * config/iq2000/iq2000.md: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/r3900.h: Likewise. + * config/mips/sb1.md: Likewise. + * config/pa/milli64.S: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa.h: Likewise. + * config/rs6000/8540.md: Likewise. + +2004-08-13 Daniel Berlin + + * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU. + +2004-08-13 J"orn Rennecke + + * sh.md (cbranch define_delay) Use cond_delay_slot for + non-anulled condition too. + 2004-08-12 David Edelsohn * config/rs6000/rs6000.c (any_parallel_operand): New predicate.