| 2004-06-30 Roger Sayle <roger@eyesopen.com> |
| |
| * expmed.c (expand_shift): Consider expanding LSHIFT_EXPR by a |
| constant as a sequence of additions depending upon the rtx_costs. |
| (synth_mult): Update the "observed" cost of a shift, based upon |
| the above optimization. |
| |
| 2004-06-28 Geoffrey Keating <geoffk@apple.com> |
| Andreas Tobler <a.tobler@schweiz.ch> |
| |
| PR 15813 |
| * dwarf2out.c (reg_save): Output DW_CFA_same_value when a |
| register is saved in itself. |
| (initial_return_save): If the return address is a register, |
| it's already there, don't bother to mention it in the CFI. |
| (struct queued_reg_save): Add field saved_reg. |
| (struct reg_saved_in_data): New. |
| (regs_saved_in_regs): New. |
| (num_regs_saved_in_regs): New. |
| (queue_reg_save): Add extra parameter to specify register saved |
| in register. Remove duplicate entries from queue. Add comment |
| for function. |
| (flush_queued_reg_saves): Handle registers saved in registers. |
| Update regs_saved_in_regs. Add comment for function. |
| (clobbers_queued_reg_save): Add comment for function. Allow |
| for regs_saved_in_regs. |
| (reg_saved_in): New. |
| (dwarf2out_frame_debug_expr): Handle saving registers in other |
| registers. |
| (dwarf2out_frame_debug): Reset regs_saved_in_regs. |
| * unwind-dw2.c (execute_cfa_program): Correct handling of |
| DW_CFA_same_value. Add FIXME comment about incorrect implementation |
| of DW_CFA_restore_extended. |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Let |
| dwarf2out_frame_debug_expr see instructions that save registers |
| in other registers or save those other registers in memory. |
| |
| * unwind-dw2.c (DWARF_FRAME_REGISTERS): Move to unwind-dw2.h. |
| (_Unwind_FrameState): Likewise. |
| * unwind-dw2.h: New. |
| * Makefile.in (LIB2ADDEHDEP): Add unwind-dw2.h. |
| * config/rs6000/darwin-fallback.c: New file. |
| * config/rs6000/darwin.h (MD_FALLBACK_FRAME_STATE_FOR): Define. |
| * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add darwin-fallback.o. |
| |
| 2004-07-01 Alan Modra <amodra@bigpond.net.au> |
| |
| * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite. |
| (function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in |
| calculating gpr size for altivec. Simplify and correct |
| rs6000_mixed_function_arg calls. Call rs6000_mixed_function_arg |
| for ABI_V4 gpr case too. Fix off-by-one error in long double |
| reg test. Generate the correct PARALLEL to handle long double |
| for ABI_AIX 32-bit. Use this for -m32 -mpowerpc64 fpr case too. |
| (function_arg_partial_nregs): Align before calculating regs left. |
| Don't return info on partial fprs when we need info on gprs. |
| Correct long double fpr off-by-one error. |
| |
| 2004-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * pa-protos.h (prefetch_operand): Add prototype. |
| * pa.c (prefetch_operand): New function. |
| * pa.h (prefetch_operand): Add to PREDICATE_CODES. |
| * pa.md (prefetch, prefetch_32, prefetch_64): New prefetch patterns. |
| |
| 2004-06-30 Richard Henderson <rth@redhat.com> |
| |
| * function.h (struct function): Remove x_whole_function_mode_p. |
| * c-decl.c (store_parm_decls): Don't set it. |
| * tree-optimize.c (tree_rest_of_compilation): Likewise. |
| * passes.c (rest_of_compilation): Don't check it. |
| * stmt.c (expand_fixup): Likewise. |
| * function.c (fixup_var_refs_insn): Remove unused variable. |
| |
| 2004-06-30 Richard Henderson <rth@redhat.com> |
| |
| * tree.h (immediate_size_expand): Delete. |
| * stor-layout.c (immediate_size_expand): Delete. |
| (variable_size): Don't look at it. |
| * c-decl.c (push_parm_decl): Don't frob immediate_size_expand. |
| (start_function): Likewise. |
| * cfgexpand.c (construct_exit_block): Likewise. |
| * function.c (init_function_start, expand_function_end): Likewise. |
| * tree-optimize.c (tree_rest_of_compilation): Likewise. |
| |
| 2004-06-30 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (gimplify_compound_lval): Take fallback argument |
| instead of want_lvalue. |
| (gimplify_call_expr): Take want_value argument instead of test |
| function. Gimplify arguments to val only if reg_type; otherwise |
| allow lvalue forms. |
| (gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr |
| calls. |
| * tree-gimple.c: Update GIMPLE grammer. Use true/false not 1/0. |
| Tidy commentary globally. |
| (get_call_expr_in): Remove RETURN_EXPR handling. Tidy. |
| * tree-gimple.h (is_gimple_call_addr): Mark extern. |
| |
| * gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo. |
| |
| 2004-06-30 Richard Henderson <rth@redhat.com> |
| |
| * tree-gimple.c (right_assocify_expr): Kill |
| (rationalize_compound_expr): Kill. |
| * tree-gimple.h: Likewise. |
| * tree-inline.c (expand_call_inline): Don't call it. |
| |
| * function.h (struct function): Remove x_last_parm_insn, |
| inl_last_parm_insn. |
| (last_parm_insn): Remove. |
| * function.c (free_after_compilation): Don't clear them. |
| (fixup_var_refs_insn, assign_parms): Don't set them. |
| |
| * function.c, rtl.h (get_first_nonparm_insn): Remove. |
| |
| 2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk> |
| |
| * c-common.h (check_function_format): Remove first parameter. |
| * c-format.c (format_check_context): Remove status. |
| (check_format_info, check_format_info_main, |
| maybe_read_dollar_number, avoid_dollar_number, |
| finish_dollar_format_checking, check_format_types, |
| check_function_format): Remove first parameter. Don't use |
| status_warning. |
| (check_format_arg): Don't use status_warning. |
| (status_warning): Remove. |
| * c-common.c (check_function_arguments): Update call to |
| check_function_format. |
| |
| 2004-06-30 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * config/sparc/sparc-protos.h (output_cbranch): Constify return |
| value. |
| (output_v9branch): Likewise. |
| (sparc_v8plus_shift): Likewise. Rename into output_v8plus_shift. |
| * config/sparc/sparc.c (output_cbranch): Constify return value. |
| Prettify output for delay slots. |
| (output_v9branch): Likewise. |
| (sparc_v8plus_shift): Constify return value. Rename into |
| output_v8plus_shift. |
| * config/sparc/sparc.md (ashldi3_v8plus): Adjust call to |
| sparc_v8plus_shift. |
| (ashrdi3_v8plus): Likewise. |
| (lshrdi3_v8plus): Likewise. |
| (call_address_struct_value_sp32): Prettify output for delay slots. |
| (call_symbolic_struct_value_sp32): Likewise. |
| (call_address_untyped_struct_value_sp32): Likewise. |
| (call_symbolic_untyped_struct_value_sp32): Likewise. |
| |
| 2004-06-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * common.opt (ftree-loop-optimize): New flag. |
| * tree-flow.h (kill_redundant_phi_nodes): Declare. |
| * tree-optimize.c (init_tree_optimization_passes): Add pass_loop. |
| * tree-pass.h (pass_loop_init, pass_loop_done): Declare. |
| * tree-ssa-loop.c (current_loops): New variable. |
| (tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init, |
| tree_ssa_loop_done): New functions. |
| (pass_loop, pass_loop_init, pass_loop_done): New passes. |
| * tree-ssa.c (kill_redundant_phi_nodes): Export. |
| * doc/invoke.texi (-ftree-loop-optimize): Document. |
| |
| 2004-06-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-ssa-loop-ch.c: New file. |
| * Makefile.in (tree-ssa-loop-ch.o): Add. |
| (tree-into-ssa.o): Add GGC_H dependency. |
| * tree-cfg.c (tree_duplicate_bb): Copy virtual arguments. |
| * tree-flow.h (rewrite_into_ssa): Declaration changed. |
| (rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name): |
| Declare. |
| * tree-into-ssa.c: Include ggc.h. |
| (struct def_blocks_d): Add phi_blocks field. |
| (struct mark_def_sites_global_data): Add names_to_rename field. |
| (struct ssa_name_info): New. |
| (compute_global_livein): Export. |
| (set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block, |
| insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for, |
| register_new_def, get_reaching_def, def_blocks_free, |
| get_def_blocks_for, rewrite_into_ssa): Modified to work with |
| rewrite_ssa_into_ssa. |
| (get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def, |
| set_current_def, ssa_mark_def_sites_initialize_block, |
| ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name, |
| ssa_register_new_def, ssa_rewrite_initialize_block, |
| ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block, |
| ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New |
| functions. |
| (pass_build_ssa): Call rewrite_all_into_ssa. |
| * tree-optimize.c (execute_todo, execute_one_pass, |
| tree_rest_of_compilation): Allocate vars_to_rename only once. |
| * tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter |
| to rewrite_into_ssa. |
| * tree-ssa-loop.c (should_duplicate_loop_header_p, |
| mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p, |
| copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c. |
| Use rewrite_ssa_into_ssa. |
| * tree-ssa-operands.c (copy_virtual_operands): New function. |
| * tree-ssa-operands.h (copy_virtual_operands): Declare. |
| * tree.h (struct tree_ssa_name): Add aux field. |
| (SSA_NAME_AUX): New macro to access it. |
| |
| 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com> |
| |
| * prefix.c (lookup_key): Cast buffer to LPBYTE. |
| |
| 2004-06-30 Per Bothner <per@bothner.com> |
| |
| Conditionally compile support for --enable-mapped_location. |
| * input.h: #include line-map.h for source_location typedef. |
| (BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location, |
| LOCATION_FILE, LOCATION_LINE): New macros and functions. |
| (expanded_location, source_locus): New typedefs. |
| (push_srcloc): Change parameter list if USE_MAPPED_LOCATION. |
| * rtl.def (NOTE, ASM_OPERANDS): Modify specifcation, if |
| USE_MAPPED_LOCATION. |
| * rtl.h (NOTE_DELETED_LABEL_NAME): New macro. |
| (NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED): |
| New conditional macros. |
| (ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE): Replace |
| by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION. |
| * tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION, |
| EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO, |
| DECL_IS_BUILTIN): New macros, most depending on USE_MAPPED__LOCATION. |
| (tree_exp): Change type of locus to use new source_locus typedef. |
| * tree.c (build1_stat): Use SET_EXPR_LOCATION. |
| (annotate_with_locus, annotate_with_file_line): Conditionalize. |
| (expand_location): New function. |
| * toplev.c (unknown_location): New static, when USE_MAPPED_LOCATION. |
| (push_srcloc, pop_loc): Adjust parameter handling. |
| (process_options): Don't set input_filename by itself. |
| (lang_dependent_init): Save, set input_location to <built-in>. |
| (warn_deprecated_use): Use expand_location. |
| |
| * basic-block.h (struct edge_def): Use new source_locus typedef. |
| * c-common.c (fname_decl): Update save/clear/store of input_location. |
| (c_do_switch_warnings): Update for USE_MAPPED_LOCATION case. |
| * c-decl.c: Likewise. |
| * c-dump.c (dump_stmt): Likewise. |
| * c-gimplify.c (c-gimplify.c): Generalize using SET_EXPR_LOCATION. |
| * c-lex.c (cb_line_change): If USE_MAPPED_LOCATION use token's src_loc |
| to set input_location direction, rather than using linemap_lookup. |
| (fe_file_change, cb_def_pragma): Again use source_location directly. |
| * c-opts.c (saved_lineno): Remove static variable. |
| (c_common_post_options, c_common_init): Don't bothner to save, |
| clear and restore input_Location - now handled by lang_dependent_init. |
| * function.c (init_function_start): Use new DECL_IS_BUILTIN macro. |
| * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise. |
| * tree-mudflap.c (mf_file_function_line_tree): Take a location_t |
| rather than a pointer to one. Use expand_location. |
| (mf_varname_tree): Use expand_location. |
| * tree-dump.c: Use expand_location on DECL_SOURCE_LOCATION. |
| * coverage.c: Likewise. |
| * print-tree.c: Likewise. |
| * c-aux-info.c (gen_aux_info_record): Likewise. |
| * c-parse.in: Use SET_EXPR_LOCATION macro. |
| * gimple-low.c: Likewise. |
| * tree-mudflap.c: Likewise. |
| * gimplify.c: Likewise. Also use EXPR_LOCATION and EXPR_HAS_LOCATION. |
| * c-ppoutput.c: Use new source_location typedef instead of fileline. |
| * c-semantics.c: Use new macros. |
| * c-typeck.c: Likewise. |
| * cfgexpand.c: Handle USE_MAPPED_LOCATION case for function_end_locus. |
| * cfglayout.c (insn_locators_initialize): Const cleanup. New macros. |
| * cfgrtl.c (delete_insn): Use new NOTE_DELETED_LABEL_NAME macro. |
| * print-rtl.c (print_rtx): Likewise. |
| * emit-rtl.c: Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION. |
| * combine.c: Use new SET_INSN_DELETED macro. |
| * flow.c: Likewise. |
| * haifa-sched.c: Likewise. |
| * ifcvt.c: Likewise. |
| * recog.c: Likewise. |
| * reload1.c: Likewise. |
| * diagnostic.c: Use expand_location macro. |
| * pretty-print.c (pp_base_format_text): Likewise. |
| * profile.c: Likewise. |
| * dwarf2out.c: Likewise. Also use expand_location, DECL_IS_BUILTIN. |
| * dwarf2out.c (dwarf2out_decl: Use BUILTINS_LOCATION. |
| * emit-rtl.c (emit_line_note): Simplify if USE_MAPPED_LOCATION. |
| (force_next_line_note, insn_emit): Handle USE_MAPPED_LOCATION case. |
| * final.c (final): Likewise. |
| * haifa-sched.c: Likewise. |
| * integrate.c: Likewise. |
| * jump.c: Likewise. |
| * rtl-error.c: Likewise. |
| * stmt.c (check_seenlabel): Likewise. |
| * tree-pretty-print.c: Likewise. |
| * gengtype-lex.l: Temporary kludge to avoid duplicate typedef. |
| * gengtype.c: Update for now typdefs in input.h. More kludges. |
| * modulo-sched.c (sms_schedule): Use NOTE_EXPANDED_LOCATION macro. |
| * ra-debug.c (ra_print_rtl): Likewise. |
| * sched-rgn.c: Likewise. |
| * sched-vis.c: Likewise. |
| * rtl.h (gen_rtx_ASM_OPERANDS): Redefine if USE_MAPPED_LOCATION. |
| * stmt.c (expand_asm_operands): Adjust calls to gen_rtx_ASM_OPERANDS. |
| * tree-cfg.c: Use new macros and typedefs. |
| * tree-flow-inline.h: Likewise. |
| |
| 2004-06-30 Richard Sandiford <rsandifo@redhat.com> |
| Eric Christopher <echristo@redhat.com> |
| |
| * config/mips/3000.md: Improve description. |
| |
| 2004-06-30 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn, |
| cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads. |
| |
| 2004-06-30 Sebastian Pop <pop@cri.ensmp.fr> |
| |
| * Makefile.in (OBJS-common): Add tree-chrec.o. |
| (tree-chrec.o): New rule. |
| (GTFILES): Add tree-chrec.h. |
| * gengtype.c (open_base_files): Add tree-chrec.h. |
| * tree-chrec.c: New file. |
| * tree-chrec.h: New file. |
| * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes. |
| |
| 2004-06-30 Roger Sayle <roger@eyesopen.com> |
| |
| * combine.c: Include "output.h" to define dump_file. |
| (uid_insn_cost, last_insn_cost): New global variables. |
| (combine_insn_cost): New function to estimate cost of an insn. |
| (combine_validate_cost): New function to determine whether a |
| try_combine replacement sequence is cheaper than the original. |
| (combine_instructions): Allocate and populate uid_insn_cost |
| array at the start of the combine pass, and deallocate it after. |
| (try_combine): Check combine_validate_cost to determine whether |
| a "recombination" should be rejected as being more expensive. |
| * Makefile.in (combine.o): Add dependency upon output.h. |
| |
| 2004-06-30 Roger Sayle <roger@eyesopen.com> |
| |
| * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle |
| subtractions identically to additions, always COSTS_N_INSNS (1). |
| |
| 2004-06-30 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * expmed.c (expand_smod_pow2): Fix sign of mask. |
| |
| 2004-06-29 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant |
| to check for constants. |
| (set_remove): Likewise. |
| (value_replace_in_set): Likewise. |
| (find_leader): Likewise. |
| * tree-vn.c (set_value_handle): Likewise. |
| (vn_lookup): Likewise. |
| (vn_lookup_or_add): Likewise. |
| |
| 2004-06-30 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| RTL prologue/epilogue for SPARC |
| * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete. |
| (sparc_skip_caller_unimp): Likewise. |
| (load_pic_register): Likewise. |
| (leaf_return_peephole_ok): Likewise. |
| (compute_frame_size): Rename into sparc_compute_frame_size. |
| (sparc_expand_prologue): New prototype. |
| (sparc_expand_epilogue): Likewise. |
| (output_return): Likewise. |
| (eligible_for_epilogue_delay): Rename into eligible_for_return_delay. |
| * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to |
| compute_frame_size. Move comment up. |
| (DELAY_SLOTS_FOR_EPILOGUE): Delete. |
| (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. |
| (EPILOGUE_USES): Return true for %g1 if the function uses EH return. |
| * config/sparc/sparc.md (UNSPECV_SAVEW): New constant. |
| (type attribute): Add 'return' and 'savew'. |
| (eligible_for_return_delay): New attribute. |
| (return): New delay_slot. |
| (sibcall_epilogue): Call sparc_expand_epilogue. |
| (prologue): Likewise. Move up. |
| (save_register_window): New expander. |
| (save_register_windowsi): New pattern. |
| (save_register_windowdi): Likewise. |
| (epilogue): New expander. |
| (return_internal): New pattern. |
| (Return peepholes): Delete. |
| * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro. |
| (sparc_emitting_epilogue): Delete. |
| (sparc_skip_caller_unimp): Likewise. |
| (sparc_sr_alias_set): New global variable. |
| (frame_base_name): Delete. |
| (frame_base_reg): New global variable. |
| (sparc_override_options): Get new alias set for save/restore. |
| (leaf_return_peephole_ok): Delete. |
| (eligible_for_epilogue_delay): Rename into eligible_for_return_delay. |
| Factor out code into eligible_for_restore_insn_delay. |
| (eligible_for_restore_insn_delay): New function extraced from above. |
| Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE. |
| (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P. |
| Factor out code into eligible_for_restore_insn_delay. |
| (load_pic_register): Make static. Remove check. |
| (save_regs): Delete. |
| (restore_regs): Likewise. |
| (compute_frame_size): Rename into sparc_compute_frame_size. |
| Rename leaf_function into leaf_function_p. |
| (build_big_number): Delete. |
| (save_or_restore_regs): New function. |
| (emit_save_regs): Likewise. |
| (emit_restore_regs): Likewise. |
| (emit_stack_pointer_increment ): Likewise. |
| (emit_stack_pointer_decrement): Likewise. |
| (sparc_expand_prologue): Likewise. |
| (sparc_function_prologue): Rename into sparc_asm_function_prologue. |
| Remove all code to emit instructions. |
| (sparc_expand_epilogue): New function. |
| (sparc_function_epilogue): Rename into sparc_asm_function_epilogue. |
| Remove all code to emit instructions. |
| (output_restore): New function. |
| (output_return): Likewise. |
| (output_sibcall): Factor out code into output_restore. |
| (print_operand): Adjust for frame_base_reg. |
| * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'. |
| * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define. |
| (TARGET_INITIALIZER): Add it. |
| * passes.c (rest_of_compilation): Set the conditional predicate |
| 'current_function_uses_only_leaf_regs' before sched2. If target |
| has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right |
| before sched2. |
| * reorg.c (return_insn_p): New predicate. |
| (find_end_label): Use it. |
| (relax_delay_slots): Do not thread an unconditional jump that points |
| to the end return label. |
| * doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity |
| domain of 'current_function_uses_only_leaf_regs'. |
| (Stack and Calling) <Function Entry>: Document new target hook |
| TARGET_LATE_RTL_PROLOGUE_EPILOGUE. |
| |
| 2004-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * simplify-rtx.c (simplify_binary_operation): Simplify |
| ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and |
| N has at least all bits in M set as well. |
| |
| PR tree-optimization/15310 |
| * expr.c (expand_assignment): Optimize += or -= on a bit field in |
| most significant bits. |
| |
| 2004-06-30 Steven Bosscher <stevenb@suse.de> |
| |
| * config/c4x/c4x.md: Fix comment. |
| |
| 2004-06-30 Akos Kiss <akiss@inf.u-szeged.hu> |
| |
| * arm.md (cond_return_inverted): Add "length" attribute. |
| |
| 2004-06-29 Per Bothner <per@bothner.com> |
| |
| * config/i386/winnt.c (i386_pe_encode_section_info): Smash rtlname's |
| XSTR in place, so we don't lose SYMBOL_REF_DECL info. |
| |
| 2004-06-29 Zack Weinberg <zack@codesourcery.com> |
| |
| * config/ia64/hpux.h: Target does too support thread-local storage. |
| |
| 2004-06-29 Zack Weinberg <zack@codesourcery.com> |
| |
| * combine.c (distribute_notes): Don't look at global_regs for |
| pseudos. |
| |
| 2004-06-29 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (gimplify_modify_expr_rhs): Move immediately before |
| gimplify_modify_expr. |
| (gimplify_init_constructor): Likewise. Gimplify the null |
| CONSTRUCTOR assignment. |
| (gimplify_modify_expr_to_memcpy): New. |
| (gimplify_modify_expr_to_memset): New. |
| (gimplify_modify_expr): Use them. |
| |
| 2004-06-29 Roman Zippel <zippel@linux-m68k.org> |
| |
| * web.c (union_defs): use all defs of an instruction to create a |
| union with a read/write use |
| |
| 2004-06-29 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/16216 |
| * builtins.c (gimplify_va_arg_expr): Check for valist being |
| an error_mark_node. |
| |
| 2004-06-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/16195 |
| * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make |
| r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC. |
| (first_reg_to_save): Pretend call_used_regs[30] is 0 if |
| TARGET_TOC && TARGET_MINIMAL_TOC. |
| (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. |
| |
| 2004-06-29 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| Fix gcc.dg/builtin-apply2.c failures: |
| * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define. |
| * sh.c (extra_push): Delete. |
| (sh_expand_prologue): Don't do extra stack adjustment for |
| current_function_pretend_args_size if it comes from varargs setup. |
| Use TARGET_VARARGS_PRETEND_ARGS. Don't set extra_push. |
| (sh_expand_epilogue): Don't use extra_push. |
| (sh_setup_incoming_varargs): Set pretend_arg_size when necessary. |
| |
| 2004-06-29 Roger Sayle <roger@eyesopen.com> |
| |
| * expmed.c (expand_smod_pow2): Provide alternate implementations |
| that avoid conditional jumps, and choose between them based upon |
| the target's rtx_costs. |
| |
| 2004-06-29 Andrew Pinski <apinski@apple.com> |
| |
| * tree-sra.c: Include expr.h for definition of MOVE_RATIO. |
| * Makefile.in (tree-sra.c): Update dependencies. |
| |
| 2004-06-29 Richard Henderson <rth@redhat.com> |
| |
| * tree-sra.c: Rewrite from scratch. Handle nested aggregates. |
| |
| 2004-06-29 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when |
| size_t is bigger than int. |
| |
| 2004-06-29 Paul Brook <paul@codesourcery.com> |
| |
| * target-def.h (TARGET_CXX_GET_COOKIE_SIZE, |
| TARGET_CXX_COOKIE_HAS_SIZE): Define. |
| (TARGET_CXX): Use them. |
| * target.h (struct gcc_target): Add cxx.get_cookie_size and |
| cxx.cookie_has_size. |
| * targhooks.c (default_cxx_get_cookie_size): New fucntion. |
| * targhooks.h (default_cxx_get_cookie_size): Add prototype. |
| * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE, |
| TARGET_CXX_COOKIE_HAS_SIZE): Define. |
| (arm_get_cookie_size, arm_cookie_has_size): New functions. |
| * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H). |
| * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and |
| TARGET_CXX_COOKIE_HAS_SIZE. |
| |
| 2004-06-29 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * cfglayout.c (fixup_reorder_chain): Don't do anything for |
| e_fall->dest == EXIT_BLOCK_PTR. |
| |
| 2004-06-28 Richard Henderson <rth@redhat.com> |
| |
| * tree-cfg.c (verify_stmt): Add last_in_block parameter. Verify |
| that eh stmts can throw. |
| (verify_stmts): Update verify_stmt call. |
| (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New. |
| * tree-eh.c (remove_stmt_from_eh_region): New. |
| (lower_eh_constructs): Fix throw_stmt_table delete routine. |
| (tree_could_trap_p): Match may_trap_p. |
| (maybe_clean_eh_stmt): New. |
| * tree-flow.h: Update decls. |
| * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts. |
| (substitute_and_fold): Clean eh edges. |
| * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle |
| empty basic blocks. |
| * tree-ssa-dom.c (need_eh_cleanup): New. |
| (tree_ssa_dominator_optimize): Allocate it. Cleanup eh edges. |
| (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup. |
| |
| 2004-06-29 Alan Modra <amodra@bigpond.net.au> |
| |
| * function.c (assign_parms): Don't abort with zero size stack |
| parm failing the PARM_BOUNDARY check. |
| |
| 2004-06-28 Diego Novillo <dnovillo@redhat.com> |
| |
| * common.opt (ftree-fre): New flag. |
| * flags.h (flag_tree_fre): Declare. |
| * opts.c (decode_options): Set. |
| * timevar.def (TV_TREE_FRE): Define. |
| * tree-flow-inline.h (may_propagate_copy): Re-arrange for |
| readability. Handle destinations that are not SSA_NAMEs. |
| * tree-flow.h (struct ptr_info_def): Move from tree.h |
| (cprop_into_stmt, cprop_into_successor_phis): Remove. |
| (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add |
| vuse_optype parameter. |
| * tree-pass.h (pass_fre): Declare. |
| * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c |
| (cprop_into_stmt): Likewise. |
| (cprop_into_successor_phis): Likewise. |
| * tree-ssa-dom.c (eliminate_redundant_computations): Fix |
| argument ordering in call to may_propagate_copy. |
| * tree-ssa-pre.c (is_undefined_value): Assume hard registers |
| to be always defined. |
| (add_to_sets): New local function. |
| (create_value_expr_from): New local function. |
| (compute_avail): Call them. |
| (eliminate): Don't ignore statements with virtual operands. |
| (init_pre): New local function. |
| (fini_pre): New local function. |
| (execute_pre): Call them. |
| Add argument DO_FRE. Don't do insertion if DO_FRE is true. |
| (do_pre): New function. |
| (do_fre): New function. |
| (gate_fre): New function. |
| (pass_fre): Declare. |
| * tree-ssa.c (init_tree_ssa): Don't call vn_init. |
| (delete_tree_ssa): Don't call vn_delete. |
| * tree-vn.c (val_expr_pair_d): Add documentation. |
| (vn_compute): Add VUSES argument to incorporate in computing |
| hash values. Update all callers. |
| (expressions_equal_p): Call operand_equal_p with |
| OEP_PURE_SAME. |
| (vn_add): Add VUSES argument. Update all callers. |
| (vn_lookup): Likewise. |
| (vn_lookup_or_add): Likewise. |
| * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre. |
| |
| 2004-06-28 Steven Bosscher <stevenb@suse.de> |
| |
| * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost, |
| m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove. |
| (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE, |
| TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define. |
| * config/m32r/m32r.md: Rewrite the pipeline description as a DFA. |
| |
| 2004-06-28 Richard Henderson <rth@redhat.com> |
| |
| * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'. |
| * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR, |
| IMAGPART_EXPR. |
| * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and |
| IMAGPART_EXPR explicitly. |
| * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR |
| and IMAGPART_EXPR specially. |
| * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'. |
| |
| 2004-06-28 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs. |
| |
| 2004-06-28 Joseph S. Myers <jsm@polyomino.org.uk> |
| |
| * builtins.def (execl, execlp, execle, execv, execvp, execve, |
| fork): Change to DEF_EXT_LIB_BUILTIN. |
| |
| 2004-06-28 Roger Sayle <roger@eyesopen.com> |
| |
| * expmed.c (expand_smod_pow2): New function to expand signed |
| remainder by a constant power of 2, such as "x % 16". |
| (expand_divmod): Call new expand_smod_pow2 when appropriate. |
| Minor corrections to comments, e.g. wrapping long lines. |
| |
| 2004-06-28 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * Makefile.in (vec.o): Fix dependencies. |
| |
| 2004-06-28 Andreas Tobler <a.tobler@schweiz.ch> |
| |
| * Makefile.in: Fix parallel make dependency problem on vec.o. |
| |
| 2004-06-28 Dhananjay Deshpande <dhananjayd@kpitcummins.com> |
| |
| PR target/14041 |
| * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define. |
| |
| 2004-06-28 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * tree.h (tree_check_failed): Make varadic. |
| (tree_not_check_failed): New prototype. |
| (tree_check2_failed, tree_check3_failed, |
| tree_check4_failed, tree_check5_failed): Remove. |
| (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4, |
| TREE_CHECK5): Adjust. |
| (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4, |
| TREE_NOT_CHECK5): New. |
| (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE, |
| TREE_RTL_OPERAND_CHECK): Adjust. |
| * tree.c (tree_check_failed): Make varadic. |
| (tree_not_check_failed): New. |
| (tree_check2_failed, tree_check3_failed, |
| tree_check4_failed, tree_check5_failed): Remove. |
| |
| 2004-06-28 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * combine.c (can_combine_p): Do not prevent building insns that use |
| and clobber the same fixed hard register. |
| (reg_dead_at_p): Likewise. |
| |
| 2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers |
| changed. |
| (is_sra_candidate_complex_ref): New function. |
| (scalarize_modify_expr): Call it and check for LHS also. |
| |
| * tree-pretty-print.c (dump_function_declaration): New. |
| (dump_generic_node, case FUNCTION_TYPE): Call it. |
| (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon. |
| (dump_generic_node, case DECL_EXPR): New case. |
| (dump_generic_node, case PLACEHOLDER_EXPR): Handle. |
| (print_declaration): Handle type and function declarations. |
| |
| * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE. |
| (convert_nonlocal_reference, convert_local_reference): Properly |
| convert nest of handled component references. |
| |
| 2004-06-28 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * vec.h, vec.c: New, type safe vector API. |
| * Makefile.in (OBJS-common): Add vec.o. |
| (vec.o): New target. |
| (gengtype-lex.o): Depend on vec.h. |
| |
| 2004-06-28 Paolo Bonzini <bonzini@gnu.org> |
| |
| * fold-const.c (fold_cond_expr_with_comparison): Add ARG1 |
| parameter. Use it instead of ARG00 to produce the result. |
| |
| 2004-06-28 Alexandre Oliva <aoliva@redhat.com> |
| |
| * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare. |
| * config/mn10300/mn10300.c (legitimate_address_p): New. Test that |
| index is legitimate, compared with code moved from... |
| * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here. |
| (REG_STRICT): Define, according to REG_OK_STRICT. |
| (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P, |
| REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict |
| argument. |
| (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P, |
| REGNO_STRICT_OK_FOR_INDEX_P): New. |
| (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P, |
| REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P, |
| RTX_OK_FOR_BASE_P): Use them. |
| |
| 2004-06-28 Ben Elliston <bje@au.ibm.com> |
| |
| * doc/cfg.texi (Basic Blocks): Define dominators. |
| |
| 2004-06-27 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR c++/16205 |
| * c-common.c (warn_for_collisions_1): Warn for only decls which |
| have a name. |
| |
| PR c++/15145 |
| * c.opt (Wsequence-point): Enable for C++ and ObjC++. |
| |
| PR c/14963 |
| * c-decl.c (start_decl): Check for null types. |
| |
| 2004-06-27 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): |
| Accept TOC addresses. |
| |
| 2004-06-27 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/s390/s390-protos.h (s390_load_got): Update prototype. |
| * config/s390/s390.c (struct machine_function): Add member base_reg. |
| (s390_decompose_address): Accept UNSPEC_LTREF. Simplify logic. |
| (s390_split_branches): Annotate late pool references. |
| (annotate_constant_pool_refs): New function. |
| (find_constant_pool_ref): Work on annotated pool references. |
| (replace_constant_pool_ref): Likewise. Use explicit base. |
| (replace_ltrel_base): Use explicit base. |
| (s390_mainpool_start): Reflect main_pool pattern change. |
| (s390_mainpool_finish): Use base register from main_pool. |
| Update calls to replace_ltrel_base and replace_constant_pool_ref. |
| (s390_chunkify_start): Use base_reg from struct machine_function. |
| (s390_chunkify_finish): Remove base_reg argument. Update calls |
| to replace_ltrel_base and replace_constant_pool_ref. |
| (s390_reorg): Don't decide upon base register. Update calls. |
| (s390_load_got): Remove MAYBE_DEAD handling. Do not emit insns |
| but return sequence instead. |
| (s390_emit_prologue): Decide upon base register to use. Annotate |
| all literal pool references. Adapt to main_pool pattern change. |
| Update s390_load_got call; move MAYBE_DEAD handling here. |
| (s390_emit_epilogue): Annotate late literal pool references. |
| Remove barrier before register restore instruction. |
| * config/s390/s390.md (UNSPEC_LTREF): New constant. |
| ("builtin_setjmp_receiver"): Update s390_load_got call. |
| ("main_pool"): Explicitly reference base register. |
| |
| 2004-06-27 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1. |
| <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1. |
| <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0. |
| <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false. |
| <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true. |
| <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true. Now that |
| TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0 |
| is a constant. |
| |
| 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted. |
| * c-common.def (DECL_STMT): Remove. |
| * c-common.h (DECL_STMT_DECL): Deleted. |
| (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL. |
| (c_safe_from_p, c_walk_subtrees): Deleted. |
| * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR. |
| * c-dump.c (c_dump_tree, case DECL_STMT): Deleted. |
| * c-gimplify.c (gimplify_decl_stmt): Deleted. |
| (gimplify_compound_literal_expr): Use DECL_EXPR_DECL |
| and gimplify_and_add. |
| (c_gimplify_expr, case DECL_EXPR): New case. |
| (c_gimplify_expr, case DECL_STMT): Deleted. |
| * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise. |
| (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. |
| * expr.c (safe_from_p, case 's'): New case. |
| * gimplify.c (gimplify_decl_expr): New function. |
| (gimplify_expr, case DECL_EXPR): New case. |
| * tree-inline.c (walk_tree): Walk into all fields of a type and |
| decl only if they are in a DECL_EXPR. |
| (mark_local_for_remap_r): Minor code cleanup. |
| * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else. |
| * tree.c (has_cleanups, case DECL_EXPR): New case. |
| * tree.def (DECL_EXPR): New code. |
| * tree.h (DECL_EXPR_DECL): New macro. |
| |
| * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted. |
| |
| 2004-06-26 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR 13334 |
| * doc/install.texi: Document non-standard CFLAGS and bootstrap |
| failures and warnings. |
| |
| 2004-06-26 Andrew Haley <aph@redhat.com> |
| |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): Check |
| TREE_THIS_NOTRAP when setting MEM_NOTRAP_P. |
| * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP. |
| * tree.h (TREE_THIS_NOTRAP): New. |
| |
| 2004-06-26 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * genattrtab.c (write_test_expr): Put a unsigned cast before |
| the first operand for GEU, GTU, LEU and LTU. |
| |
| 2004-06-26 Kazu Hirata <kazu@cs.umass.edu> |
| |
| * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c, |
| gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c, |
| tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c, |
| tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c, |
| tree-tailcall.c: Fix comment typos. Follow spelling |
| conventions. |
| |
| 2004-06-25 Eric Christopher <echristo@redhat.com> |
| |
| * config/mips/mips.md: Add back scheduling exclusion info. |
| |
| 2004-06-25 Roger Sayle <roger@eyesopen.com> |
| |
| * ifcvt.c (seq_contains_jump): Delete function. |
| (end_ifcvt_sequence): Replace call to seq_contains_jump with an |
| inline test for a jump instruction in the existing "insn" loop. |
| (block_fallthru): Document function. |
| |
| 2004-06-25 Philip Blundell <philb@gnu.org> |
| |
| PR wrong-code/15089 |
| * loop.c (scan_loop): Do not move user-specified register |
| assignments. |
| |
| 2004-06-25 DJ Delorie <dj@redhat.com> |
| |
| * c-common.h (warn_cast_qual, warn_missing_format_attribute, |
| warn_pointer_arith, warn_missing_prototypes, warn_parentheses, |
| warn_missing_braces, warn_sign_compare, warn_long_long, |
| warn_redundant_decls, warn_float_equal, warn_char_subscripts, |
| warn_conversion, warn_format_y2k, warn_format_extra_args, |
| warn_format_zero_length, warn_format_nonliteral, |
| warn_format_security, mesg_implicit_function_declaration, |
| warn_bad_function_cast, warn_traditional, |
| warn_declaration_after_statement, warn_strict_prototypes, |
| warn_missing_declarations, warn_nested_externs, |
| warn_sequence_point, warn_init_self, warn_div_by_zero, |
| warn_implicit_int, warn_nonnull, warn_old_style_definition, |
| warn_selector, warn_undeclared_selector, warn_protocol, |
| warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy, |
| warn_overloaded_virtual, warn_nonvdtor, warn_reorder, |
| warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo, |
| warn_old_style_cast, warn_nontemplate_friend, |
| warn_deprecated): Remove explicit declarations. |
| * c-common.c: Likewise, remove explicit definitions. |
| * c-opts.c: Likewise, remove explicit assignments. |
| * c.opts: Likewise, add implicit declare/define/assign. |
| |
| 2004-06-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case. |
| (build_addr_expr_with_type): Deleted. |
| (build_addr_expr): Deleted; callers changed to build_fold_addr_expr. |
| (gimplify_compound_lval): Make two passes over reference nest. |
| |
| * tree-nested.c (build_addr): Merge real/imagpart with |
| handled_component_p. |
| (convert_nonlocal_reference, convert_local_reference): Process extra |
| args to COMPONENT_REF and ARRAY_REF. |
| * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for |
| lower bound and field offset being constant. |
| |
| 2004-06-25 Mark Mitchell <mark@codesourcery.com> |
| |
| PR wrong-code/16129 |
| * alias.c (get_alias_set): Adjust setting of |
| DECL_POINTER_ALIAS_SET for pointers to aggregates. |
| |
| 2004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * tree-inline.c (remap_type): Arrange to have just one pointer type |
| for each type, mode, and 'can alias' value. |
| (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL. |
| (estimate_num_insns_1): Minor code reformatting. |
| (inline_forbidden_p_1): Likewise; add; missing return statement. |
| |
| 2004-06-25 Roger Sayle <roger@eyesopen.com> |
| |
| PR middle-end/15825 |
| * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence. |
| Use get_isns and end_sequence instead of accepting a seq argument. |
| Scan the instruction sequence for unrecognizable or jump insns. |
| (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, |
| noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove, |
| noce_try_cmove_arith, noce_try_minmax, noce_try_abs, |
| noce_try_sign_mask): Use end_ifcvt_sequence to factor common code. |
| |
| 2004-06-24 Jeff Law <law@redhat.com> |
| |
| * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS |
| after gimplifying the innermost component. |
| |
| 2004-06-25 Richard Sandiford <rsandifo@redhat.com> |
| |
| PR target/16176 |
| * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary |
| register for the destination of the lwl or ldl. |
| |
| 2004-06-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with |
| handled_component_p handling. |
| * tree-gimple.c (get_base_address): Likewise and fix typo that |
| caused both recursion and looping. |
| |
| * tree-cfg.c (verify_expr): Add macro CHECK_OK. |
| Properly test for nest of handled_components in LHS context. |
| |
| 2004-06-25 Devang Patel <dpatel@apple.com> |
| |
| * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type |
| |
| 2004-06-25 Paul Brook <paul@codesourcery.com> |
| |
| * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT, |
| TARGET_CXX): Define. |
| (TARGET_INITIALIZER): Use TARGET_CXX. |
| * target.h (struct gcc_target): Add struct cxx. |
| * targhooks.h (default_cxx_guard_type): Add prototype. |
| * targhooks.c (default_cxx_guard_type): New function. |
| * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT): |
| Define. |
| (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions. |
| * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and |
| TARGET_CXX_GUARD_MASK_BIT. |
| |
| 2004-06-25 Devang Patel <dpatel@apple.com> |
| |
| * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull. |
| * config/i386/darwin.h (CC1_SPEC): Same. |
| |
| 2004-06-25 Mark G. Adams <mark.g.adams@sympatico.ca> |
| |
| * dbxout.h: Add include guards |
| |
| 2004-06-25 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__. |
| |
| 2004-06-25 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.c (arm_arch4t): New variable. |
| (arm_override_options): Initialize it. If compiling for armv5 or |
| higher clear TARGET_INTERWORK. |
| (output_call): Abort if called for armv5. Use BX if it's available. |
| (output_call_mem): Use BLX if available and ensure that all armv5 |
| code is interworking safe. |
| (output_return_instruction): Always use BX in preference to MOV if |
| it's available. |
| (arm_output_epilogue): Likewise. |
| (arm_final_prescan_insn): Never conditionally call a subroutine |
| on armv5. |
| * arm.h (arm_arch4t): Declare. |
| * arm.md (call_reg_armv5, call_value_reg_armv5): New. |
| (call_reg_arm, call_value_reg_arm): Renamed from call_reg and |
| call_value_reg respectively. |
| (call_reg_thumb_v5, call_value_reg_thumb_v5): New. |
| (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect |
| and call_value_indirect respectively. |
| |
| 2004-06-25 Richard Sandiford <rsandifo@redhat.com> |
| |
| * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement |
| in terms of const_float_1_operand. |
| |
| 2004-06-25 Richard Sandiford <rsandifo@redhat.com> |
| |
| PR target/16144 |
| * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand |
| is 1.0; force it into a register instead. |
| |
| 2004-06-25 Bernardo Innocenti <bernie@develer.com> |
| |
| * config/m68k/m68k.h: Restore valid comment removed by mistake with |
| the recent m68k comments cleanup. |
| |
| 2004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add. |
| * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise. |
| (gimplify_loop_expr, gimplify_init_constructor): Likewise. |
| (gimplify_self_mod_expr, gimplify_cond_expr): Likewise. |
| |
| PR/16131 |
| * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR. |
| |
| * gimplify.c: Remove unneeded forward declarations. |
| |
| * gimplify.c (append_to_compound_expr): Deleted. |
| * tree-gimple.h (append_to_compound_expr): Deleted. |
| |
| * fold-const.c (fold_addr_expr_with_type): Look through all |
| valid LHS modifiers to find a base to mark addressable. |
| |
| * tree.h (debug_find_tree): Add declaration. |
| * tree-inline.c (debug_find_tree): Remove extern declaration. |
| |
| 2004-06-24 Eric Christopher <echristo@redhat.com> |
| |
| * config/rs6000/rs6000.md: Apply change mistakenly |
| deleted with 2004-06-22 patch. |
| |
| 2004-06-24 Richard Henderson <rth@redhat.com> |
| |
| * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove. |
| (c_break_label, c_cont_label): New. |
| (start_function): Update initializations. |
| (c_push_function_context): Update saves. |
| (c_pop_function_context): Update restores. |
| * c-parse.in: Update expected conflicts. |
| (stmt_count, compstmt_count): Remove. Remove all updates. |
| (if_prefix, simple_if, do_stmt_start): Remove. |
| (lineno_labeled_stmt): Remove. |
| (lineno_labels): New. |
| (c99_block_lineno_labeled_stmt): Use it. |
| (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling |
| annotate_with_locus. |
| (select_or_iter_stmt): Replace by ... |
| (condition, if_statement_1, if_statement_2, if_statement, |
| start_break, start_continue, while_statement, do_statement, |
| for_cond_expr, for_incr_expr, for_statement, switch_statement): New. |
| (stmt): Split out ... |
| (stmt_nocomp): ... this. Use c_finish_bc_stmt, c_finish_goto_label, |
| c_finish_goto_ptr. |
| * c-semantics.c (add_stmt): Don't add line numbers to labels. |
| * c-tree.h: Update prototypes. |
| (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt; |
| add x_break_label, x_cont_label, x_switch_stack. |
| (c_switch_stack): Declare. |
| * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New. |
| (c_finish_return): Return the statement. |
| (c_switch_stack): Rename from switch_stack; export. |
| (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove. |
| (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else, |
| c_finish_else): Remove. |
| (c_finish_if_stmt): Rewrite to perform the entire operation. |
| (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt, |
| c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, |
| c_finish_for_stmt_incr, c_finish_for_stmt): Remove. |
| (c_finish_loop): New. |
| (c_finish_bc_stmt): New. |
| (c_finish_expr_stmt): Return the statement. Split out... |
| (c_process_expr_stmt): ... this. Don't add locus to error marks. |
| * gimplify.c (gimplify_cond_expr): Accept NULL type statements. |
| * tree-gimple.c (is_gimple_stmt): Likewise. |
| * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise. |
| (print_struct_decl): Delete empty compound statement. |
| * objc/objc-act.c (objc_build_throw_stmt): Return the statement. |
| * objc/objc-act.h: Update decl. |
| |
| 2004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * tree-pretty-print.c (dump_generic_node, case TYPE_DECL): |
| Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE. |
| |
| 2004-06-24 Andrew Pinski <apinski@apple.com> |
| |
| * objc-act.c (build_objc_method_call): Save the lookup_object |
| so we do not call it twice. |
| |
| 2004-06-24 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-dom.c (real_avail_expr_hash): New. |
| (tree_ssa_dominator_optimize): Use it in the htab. |
| |
| 2004-06-24 Frank Ch. Eigler <fche@redhat.com> |
| |
| * tree-mudflap.c (mx_register_decls): Add third (type) argument |
| to synthesized __mf_unregister call. |
| |
| 2004-06-24 Roger Sayle <roger@eyesopen.com> |
| |
| PR middle-end/15239 |
| * expmed.c (expand_mult): Remove artificial restriction on the |
| maximum cost of a synthetic multiplication sequence. |
| |
| 2004-06-24 Eric Christopher <echristo@redhat.com> |
| |
| * combine.c (distribute_notes): Don't delete sets to |
| global register variables. |
| |
| 2004-06-24 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.md (ffsdi2, clzdi2): New expanders. |
| (ffs_rex64): New splitter. |
| (ffsdi_1, ctzdi2, bsr_rex64): New instructions. |
| |
| 2004-06-24 Andrew Pinski <apinski@apple.com> |
| |
| * config/darwin7.h (MATH_LIBRARY): Remove. |
| (LIB_SPEC): Define. |
| * config/darwin.h (MATH_LIBRARY): Define always to empty. |
| (LIB_SPEC): Only define if not already defined. |
| |
| 2004-06-24 Revital Eres <eres@il.ibm.com> |
| |
| * loop-iv.c (iv_analyze, simple_set_p): Support for identifying |
| shifts of induction variable. |
| (iv_shift): New function. |
| |
| 2004-06-24 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (gimplify_body): Watch for body vanishing. |
| |
| 2004-06-24 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (record_dominating_conditions): New function. |
| (dom_opt_finalize_block, get_eq_expr_value): Use it. |
| |
| 2004-06-24 Richard Sandiford <rsandifo@redhat.com> |
| |
| * calls.c (shift_returned_value): Fix handling of non-integer |
| TYPE_MODEs. |
| |
| 2004-06-24 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN. |
| * system.h (DEFAULT_MAIN_RETURN): Poison. |
| * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation. |
| |
| 2004-06-24 Ben Elliston <bje@au.ibm.com> |
| |
| * doc/cfg.texi (Edges): Fix typo. |
| |
| 2004-06-24 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/arm.c (arm_output_epilogue): Remove excess checks. |
| |
| 2004-06-23 Andrew Pinski <apinski@apple.com> |
| |
| PR middle-end/15988 |
| * fold-const.c (fold_convert): Types which are compatible |
| can be converted with only a NOP_EXPR. |
| |
| 2004-06-24 Alan Modra <amodra@bigpond.net.au> |
| |
| * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and |
| pass raw n_named_args to it. |
| * targhooks.c: Formatting. |
| (hook_bool_CUMULATIVE_ARGS_false): Correct comment. |
| |
| 2004-06-23 Richard Henderson <rth@redhat.com> |
| |
| * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside |
| non-constant size check. Gimplify the type too. Tidy building |
| BUILT_IN_STACK_ALLOC call. |
| |
| 2004-06-23 Roger Sayle <roger@eyesopen.com> |
| |
| * c-common.c (expand_unordered_cmp): Delete. |
| (expand_tree_builtin): Delete. |
| * c-common.h (expand_tree_builtin): Delete function prototype. |
| * c-typeck.c (build_function_call): Don't call expand_tree_builtin. |
| |
| 2004-06-23 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or |
| COMPONENT_REF variable fields unless they're non-constant. |
| |
| 2004-06-23 Robert Millan <robertmh@gnu.org> |
| |
| * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu. |
| * config/i386/linux.h: Allow overriding of LINK_EMULATION, |
| DYNAMIC_LINKER and register names in sc_ structure. |
| * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h. |
| * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu. |
| * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu. |
| * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu. |
| |
| * config/kfreebsdgnu.h: Remove. |
| * config/t-kfreebsd-gnu: Likewise. |
| * config/i386/kfreebsdgnu.h: Likewise. |
| |
| 2004-06-23 Eric Christopher <echristo@redhat.com> |
| |
| * fold-const.c (make_range): Cleanup type checking through function. |
| Remove orig_type. Replace with checks to exp_type and arg0_type. |
| Clarify comment when converting from unsigned to signed. |
| |
| 2004-06-23 Eric Christopher <echristo@redhat.com> |
| |
| * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000. |
| * config/mips/mips.md: Remove R3000 scheduling description. |
| * config/mips/3000.md: New file. |
| |
| 2004-06-23 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/s390/s390-protos.h (s390_emit_compare): Add prototype. |
| (s390_emit_jump): Likewise. |
| * config/s390/s390.c (s390_emit_compare): New function. |
| (s390_emit_jump): Likewise. |
| * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu", |
| "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq", |
| "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare |
| and s390_emit_jump. |
| ("cjump"): Remove, replace by ... |
| ("*cjump_64", "*cjump_31"): ... these insns. Improve length default. |
| ("icjump", "*icjump_64", "*icjump_31"): Likewise. |
| ("trap"): Fix type attribute. |
| ("conditional_trap"): Use s390_emit_compare. |
| ("doloop_si"): Remove, replace by ... |
| ("doloop_si64", "doloop_si31"): ... these new insn_and_split. |
| Merge existing splitter into insn_and_split. Improve length default. |
| ("doloop_di"): Merge with existing splitter into insn_and_split. |
| ("doloop"): Adapt. |
| ("jump"): Convert to expander. Use s390_emit_jump. |
| ("*jump_64", "*jump_31"): New insns. Improve length default. |
| |
| 2004-06-23 Wu Yongwei <adah@sh163.net> |
| |
| * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. |
| (__gthr_i486_lock_cmp_xchg): New inline assembly function. |
| (__GTHR_W32_InterlockedCompareExchange): New macro to choose a |
| suitable function for interlocked compare-and-exchange. |
| (__gthread_mutex_trylock): Use |
| __GTHR_W32_InterlockedCompareExchange. |
| (__gthread_mutex_init_function, __gthread_mutex_lock, |
| __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the |
| initial counter value to work correctly under Windows 95. |
| * config/i386/gthr-win32.c: Adjust include order. |
| Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including |
| gthr-win32.h. |
| (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock, |
| __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust |
| to match inline versions in gthr-win32.h. |
| |
| 2004-06-23 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete. |
| (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1. |
| (insvdi_rshift_rlwimi_p): New function. |
| * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns. |
| (extendsfdf2): Convert to define_insn_and_split. |
| * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype. |
| |
| 2004-06-23 Andrew Pinski <apinski@apple.com> |
| |
| * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have |
| type qualifiers at all. |
| If both of the type domains are null and the new element type is |
| the same as one of the, return the one which the element type. |
| matches. |
| Do not call qualify_type on the new type. |
| |
| 2004-06-23 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove. |
| |
| 2004-06-23 Roger Sayle <roger@eyesopen.com> |
| |
| * convert.c (strip_float_extension): Skip both NOP_EXPR and |
| CONVERT_EXPR floating point extensions. |
| |
| 2004-06-23 Diego Novillo <dnovillo@redhat.com> |
| |
| * Makefile.in (tree-vn.o): New. |
| (tree-ssa-pre.o): Don't depend on RTL_H. |
| * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa. |
| * tree-flow.h (struct var_ann_d): Remove field expr_set. |
| (add_to_value, expressions_equal_p, get_value_handle, vn_compute, |
| vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare. |
| * tree-optimize.c (execute_init_datastructures): New local function. |
| (pass_init_datastructures): New local variable. |
| (init_tree_optimization_passes): Sequence pass_init_datastructures. |
| * tree-pretty-print.c (MASK_POINTER): Remove. |
| (dump_generic_node): Handle VALUE_HANDLE. |
| * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c. |
| Update callers to use new function names. |
| Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of |
| variable annotations. |
| * tree-ssa.c (init_tree_ssa): Call vn_init. |
| (delete_tree_ssa): Call vn_delete. |
| * tree-vn.c: New file. |
| * tree.c (tree_size): Handle VALUE_HANDLE. |
| (tree_node_structure): Likewise. |
| (iterative_hash_expr): Likewise. |
| * tree.def (VALUE_HANDLE): New code. |
| * tree.h (struct tree_value_handle): New. |
| (VALUE_HANDLE_ID): Define. |
| (VALUE_HANDLE_EXPR_SET): Define. |
| (enum tree_node_structure_enum): Add TS_VALUE_HANDLE. |
| (union tree_node): Add struct tree_value_handle. |
| |
| 2004-06-23 Andrew Pinski <apinski@apple.com> |
| |
| * c-typeck.c (composite_type): |
| <case POINTER_TYPE>: Build a qualified type of |
| the new type. |
| <case ARRAY_TYPE>: Likewise. |
| <case FUNCTION_TYPE>: Likewise. |
| |
| 2004-06-23 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR optimization/15633 |
| * value-prof.c (divmod_fixed_value_transform): Compute probability |
| of taking optimal path and pass along to gen_ routine. |
| (mod_pow2_value_transform): Same. |
| (mod_subtract_transform): Same. |
| (gen_divmod_fixed_value): Add new probability parameter. |
| Add probability to newly created jump. |
| (gen_mod_pow2): Same. |
| (gen_mod_subtract): Same. |
| |
| 2004-06-23 Richard Earnshaw <rearnsha@arm.com> |
| |
| * PR target/15948 |
| * arm.md (bicsi3_cbranch): Add alternative to handle tying operands |
| one and two. |
| |
| 2004-06-23 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/15927 |
| * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary |
| reload if CLASS is BASE_REGS. |
| |
| 2004-06-23 Richard Sandiford <rsandifo@redhat.com> |
| |
| * gengtype-yacc.y (option): Avoid use of non-constant struct |
| initializer. |
| |
| 2004-06-23 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * doc/extend.texi (Function Attributes): Alphabetize. |
| |
| 2004-06-23 Richard Henderson <rth@redhat.com> |
| |
| * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call. |
| Use gimplify_and_add. |
| * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt. |
| * gimplify.c (build_and_jump, gimplify_exit_expr, |
| gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup, |
| gimplify_stmt, gimplify_expr): Likewise. |
| (shortcut_cond_expr): Handle NULL arms of COND_EXPR. |
| (gimplify_statement_list): Remove NULL entries. |
| (gimplify_to_stmt_list): Handle NULL results. |
| (gimplify_type_sizes): Add list_p argument. |
| (gimplify_one_sizepos): Don't use internal pre/post queue. |
| * tree-gimple.h (gimplify_type_sizes): Update. |
| |
| 2004-06-22 Eric Christopher <echristo@redhat.com> |
| |
| * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns. |
| |
| 2004-06-22 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge |
| when redirecting back edges. |
| |
| * cfghooks.c (split_block): Call make_single_succ_edge so that edge |
| count/probability are set correctly. |
| |
| 2004-06-22 Richard Henderson <rth@redhat.com> |
| |
| * c-typeck.c (emit_side_effect_warnings): Ignore error marks. |
| (c_finish_stmt_expr): Likewise. |
| |
| * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New. |
| (ix86_return_in_memory): Move SSE vector return warning ... |
| (ix86_struct_value_rtx): ... here. New. |
| |
| 2004-06-22 Richard Henderson <rth@redhat.com> |
| |
| * tree.def (VTABLE_REF): Remove. |
| (OBJ_TYPE_REF): New. |
| (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'. |
| * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF. |
| * fold-const.c (non_lvalue): Likewise. |
| * gimplify.c (gimplify_expr): Likewise. |
| (gimplify_call_expr): Use is_gimple_call_addr. |
| * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New. |
| * langhooks.h (fold_obj_type_ref): New. |
| * tree-gimple.c (is_gimple_call_addr): New. |
| * tree-gimple.h (is_gimple_call_addr): Declare. |
| * tree-inline.c (inlinable_function_p): Fix merge error. |
| (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| (print_call_name): Handle OBJ_TYPE_REF. |
| * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF. |
| * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF. |
| * tree.h (OBJ_TYPE_REF_EXPR): New. |
| (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New. |
| * doc/c-tree.texi (VTABLE_REF): Remove. |
| * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF. |
| |
| 2004-06-22 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/16026 |
| * function.c (assign_parms): Don't abort for overaligned PARALLEL. |
| |
| 2004-06-22 Joseph S. Myers <jsm@polyomino.org.uk> |
| |
| * Makefile.in (distclean): Don't try to remove empty directories. |
| |
| 2004-06-22 Richard Sandiford <rsandifo@redhat.com> |
| |
| PR target/15869 |
| * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow. |
| |
| 2004-06-22 Alexandre Oliva <aoliva@redhat.com> |
| |
| * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu |
| operands. |
| |
| 2004-06-22 Dale Johannesen <dalej@apple.com> |
| |
| * config/rs6000/rs6000.c (legitimate_offset_address_p): Make |
| global, rename rs6000_legitimate_offset_address_p. |
| (rs6000_legitimate_address_p): Adjust calls to it. |
| (lmw_operation): Ditto. |
| (stmw_operation): Ditto. |
| * config/rs6000/rs6000-protos.h: Declare it. |
| * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it |
| instead of offsettable_memref_p. |
| |
| 2004-06-22 Dale Johannesen <dalej@apple.com> |
| |
| * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow |
| [reg+reg] mode for TFmode memory accesses. |
| (rs6000_eliminate_indexed_memrefs): New. |
| (rs6000_emit_move): Call preceding for TImode and TFmode. |
| |
| 2004-06-22 Paolo Bonzini <bonzini@gnu.org> |
| |
| * tree-cfg.c (pass_warn_function_return): It needs |
| CFG, not SSA. |
| |
| 2004-06-22 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * doc/invoke.texi (Machine Dependent Options): Alphabetize. |
| (Submodel Options): Likewise. |
| |
| 2004-06-21 Andrew Pinski <apinski@apple.com> |
| |
| Radar #: 3701874 |
| * c-decl.c (push_file_scope): Return early if we already |
| have a file scope. |
| |
| 2004-06-21 Geoffrey Keating <geoffk@apple.com> |
| |
| * c-opts.c (c_common_handle_option): Handle -fpch-preprocess. |
| * c-common.h (flag_pch_preprocess): Declare. |
| (c_common_pch_pragma): Likewise. |
| * c-common.c (flag_pch_preprocess): New. |
| * c-pch.c (c_common_read_pch): Support -fpreprocess-only. |
| (c_common_pch_pragma): New. |
| * c-ppoutput.c (cb_read_pch): New. |
| (init_pp_output): Support -fpch-preprocess. |
| * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess. |
| * c.opt (fpch-preprocess): New. |
| * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess. |
| * doc/cppopts.texi: Document -fpch-preprocess. |
| * doc/invoke.texi (Precompiled Headers): Mention that |
| -fpreprocessed is safe for PCH. Mention that if an option is |
| listed as safe that doesn't mean it does what you expect. |
| |
| 2004-06-22 Ben Elliston <bje@au.ibm.com> |
| |
| * tree-ssa.c (ssa_redirect_edge): Correct leading comment. |
| |
| 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * Makefile.in (gimplify.o): Add cgraph.h. |
| * alias.c (adjust_offset_for_component_ref): Use |
| component_ref_field_offset. |
| * c-decl.c (build_array_declarator): Add news args for ARRAY_REF. |
| * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list. |
| (gimplify_decl_stmt): Call gimplify_type_sizes for type. |
| For decl, call gimplify_one_sizepos and use statement list. |
| (gimplify_compound_literal_expr): New arg PRE_P. |
| Add statement to PRE_P list and return DECL. |
| (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to |
| gimplify_compound_literal_expr. |
| * c-tree.h (getdecls): Deleted. |
| * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF. |
| (build_array_ref): Add two operands for ARRAY_REF. |
| (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for |
| COMPOUND_LITERAL_EXPR. |
| * coverage.c (tree_coverage_counter_ref): Add new operands |
| for ARRAY_REF. |
| * emit-rtl.c (component_ref_for_mem_expr): Add new operand |
| for COMPONENT_REF. |
| (set_mem_attributes_minus_bitpos): Use array_ref_low_bound |
| and array_ref_element_size. |
| (widen_memory_access):Use component_ref_field_offset. |
| * explow.c (update_nonlocal_goto_save_area): Add two operands |
| for ARRAY_REF. |
| * expr.c (array_ref_element_size, array_ref_low_bound): New functions. |
| (component_ref_field_offset): Likewise. |
| (get_inner_reference): Use them. |
| (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound. |
| * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE. |
| (fold_read_from_constant_string): Use array_ref_low_bound. |
| Verify that result is a character type. |
| (build_fold_indirect_ref): Add two operands for ARRAY_REF. |
| * function.c (expand_function_start): Likewise. |
| * gimple-low.c (expand_var_p): Delete duplicated line. |
| * gimplify.c: Add static decls for local functions. |
| (cgraph.h): Now included. |
| (create_tmp_var): Remove check for ARRAY_TYPE. |
| (copy_if_shared_r): Look at bounds and sizes of types. |
| (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt. |
| (gimplify_exit_expr, shortcut_cond_expr): Likewise. |
| (gimplify_save_expr, gimple_push_cleanup): Likewise. |
| (gimplify_init_constructor): Likewise. |
| WANT_VALUE now bool. |
| If empty list with no result wanted, return GS_UNHANDLED. |
| Add additional operands for ARRAY_REF and COMPONENT_REF. |
| (canonicalize_component_ref): Convert to &array[L]. |
| (gimplify_array_ref_to_plus): Use array_ref_element_size and |
| array_ref_lower_bound. |
| (build_addr_expr_with_type, build_addr_expr): New functions. |
| (gimplify_compound_lval): WANT_LVALUE now bool. |
| Major rework to allow handle_component_p and initialize and |
| gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and |
| COMPONENT_REF. |
| (gimplify_array_ref): Deleted. |
| (gimplify_self_mod_expr): WANT_VALUE now bool. |
| (gimplify_modify_expr): Gimplify to_p and from_p later. |
| Factor out code into gimplify_modify_expr_rhs and call twice. |
| Move variable-size code earlier and handle PLACEHOLDER_EXPR. |
| (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns. |
| (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case. |
| (gimplify_expr, case ARRAY_REF): Delete special case. |
| Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF, |
| IMAGPART, and REALPART the same way. |
| (gimplify_expr, case VIEW_CONVERT_EXPR): New case. |
| (gimplify_expr): Call gimplify_variable_sized_compare if applicable. |
| Call alloc_stmt_list instead of build_empty_stmt. |
| Deal with _REF that's volatile. |
| (gimplify_type_sizes, gimplify_one_sizepos): New functions. |
| (unshare_body, unvisit_body): New functions. |
| (gimplify_body): Call them. |
| * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE. |
| * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT. |
| * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF. |
| * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF |
| like ARRAY_REF. |
| (verify_expr, case ADDR_EXPR): Use handled_component_p. |
| * tree-dfa.c (get_virtual_var): Likewise. |
| * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF): |
| New cases to dump new operands; likewise for ARRAY_RANGE_REF. |
| * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF. |
| * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF |
| and INDIRECT_REF. |
| (get_base_address): Use handled_component_p. |
| * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New. |
| * tree-inline.c (walk_tree): Walk more things for types and decls. |
| * tree-mudflap.c (mf_build_check_statement_for): Add new operands |
| for ARRAY_REF and COMPONENT_REF. |
| (mx_xform_derefs_1): Clean up usage of decl sizes. |
| * tree-nested.c (build_addr): Use handled_component_p. |
| (walk_stmts, case CATCH_EXPR): Add missing "break". |
| (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF. |
| (finalize_nesting_tree_1): Likewise. |
| (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF |
| and process additional operands. |
| (convert_local_reference): Likewise. |
| * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat |
| ARRAY_RANGE_REF similarly to ARRAY_REF. |
| * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle |
| like RECORD_TYPE. |
| (dump_generic_node, case COMPONENT_REF): Print offset operand. |
| (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF |
| and print lower bound and element size for both. |
| (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF. |
| * tree-sra.c (csc_build_component_ref): Add new operand. |
| (scalarize_call_expr): Use get_base_address. |
| * tree-ssa-ccp.c (widen_bitfield): Clean up size handling. |
| (maybe_fold_offset_to_array_ref): Rework to handle input having an |
| ARRAY_REF, refine handling of lower bound, and add new operands |
| for ARRAY_REF. |
| (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF. |
| (maybe_fold_stmt_indirect): Only fold *&B to B if types match. |
| (maybe_fold_stmt_addition): Only handle constant lower bound. |
| * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. |
| Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands. |
| Look at new offset operand of COMPONENT_REF. |
| * tree-ssa.c (set_is_used): Use handled_component_p. |
| * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand. |
| (stabilize_reference, case COMPONENT_REF): Likewise. |
| (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly. |
| (recompute_tree_invariant_for_addr_expr): Completely rework to |
| be more precise. Also set TREE_SIDE_EFFECTS. |
| (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here. |
| (build2_stat, build3_stat, build4_stat): For references, |
| propagate TREE_THIS_VOLATILE. |
| (get_unwidened): Add new operand for COMPONENT_REF. |
| (get_narrower): Likewise; use host_integerp for DECL_SIZE. |
| * tree.def (COMPONENT_REF): Add new operand. |
| (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands. |
| * tree.h (array_ref_element_size, array_ref_low_bound): New decls. |
| (component_ref_field_offset): Likewise. |
| * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF. |
| (alpha_gimplify_va_arg): Likewise. |
| * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. |
| * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise. |
| * config/iq2000/iq2000.c (iq2000_va_arg): Likewise. |
| * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise. |
| * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): |
| Likewise. |
| * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. |
| * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise. |
| * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start): |
| Likewise. |
| (xstormy16_expand_builtin_va_arg): Likewise. |
| * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise. |
| * objc/objc-act.c (generate_static_references): Likewise. |
| (generate_strings, build_method_prototype_list_template): Likewise. |
| (generate_protocol_list): Likewise. |
| |
| 2004-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR rtl-optimization/14782 |
| * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing |
| the address checks for secondary reloads for loads from and stores |
| to floating-point registers. |
| * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes |
| in the address check. Move work around for ELF32 targets to |
| GO_IF_LEGITIMATE_ADDRESS. |
| (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be |
| correctly aligned for DImode loads and stores. Don't allow long |
| SFmode displacements on ELF32. |
| |
| 2004-06-21 Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/16114 |
| * cse.c (merge_equiv_classes): Also rehash in response to |
| delete_reg_equiv changes. |
| (rehash_using_reg): Don't exclude REGs from rehashing. |
| |
| 2004-06-21 Richard Henderson <rth@redhat.com> |
| |
| * c-common.def (RETURN_STMT): Remove. |
| * c-common.h (RETURN_STMT_EXPR): Remove. |
| (c_expand_return, build_return_stmt): Remove. |
| (c_common_stmt_codes): Remove RETURN_STMT. |
| * c-dump.c (dump_next_stmt): Remove. |
| (c_dump_tree): Remove RETURN_STMT. |
| * c-decl.c (finish_function): Use c_finish_return. |
| * c-parse.in (stmt): Likewise. |
| * c-gimplify.c (gimplify_return_stmt): Remove. |
| (c_gimplify_expr): Remove RETURN_STMT. |
| * c-pretty-print.c (pp_c_statement): Likewise. |
| * c-semantics.c (build_return_stmt): Remove. |
| * c-tree.h (c_finish_return): Declare. |
| * c-typeck.c (c_finish_return): Rename from c_expand_return. |
| Return void. Build RETURN_EXPR directly. |
| * tree-dump.h (dump_next_stmt): Remove. |
| |
| 2004-06-21 Zack Weinberg <zack@codesourcery.com> |
| |
| * c-decl.c (start_function): Don't call make_decl_rtl. Don't |
| look at TREE_ADDRESSABLE of symbol name. |
| |
| 2004-06-21 Kelley Cook <kcook@gcc.gnu.org> |
| |
| PR target/15551 |
| * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE. |
| (allocate_stack_worker): Make unspec_volatile. |
| (allocate_stack_worker_rex64): Likewise. |
| (allocate_stack_worker_postreload): Likewise. |
| (allocate_stack_worker_rex64_postreload): Likewise. |
| |
| 2004-06-21 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR optimization/15982 |
| * tree-ssa-pre.c: Update a few comments and todos to |
| reflect constants change. |
| (get_value_handle): Constants now value number to themselves. |
| (lookup): Constants lookup to themselves. |
| (add_to_value): Adjust to always be on. |
| (set_contains_value): Adjust for constants change. |
| (find_leader): Ditto. |
| (phi_translate): 'r' nodes are never ANTIC right now. |
| (valid_in_set): Ditto. |
| (get_expr_set): New function. |
| (find_or_generate_expression): New function, broken out from |
| insert_aux. |
| (create_expression_by_pieces): Ditto, plus additional |
| machinery to handle complex values. |
| (compute_avail): Remove dead RETURN_EXPR handling. |
| |
| 2004-06-21 Steven Bosscher <stevenb@suse.de> |
| |
| * config/i386/i386.c: Include insn-codes.h |
| * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't |
| define here. |
| * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG, |
| DIRFLAG_REG): New define_constants. Use them everywhere. |
| |
| 2004-06-21 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/t-linux (MULTILIB_OPTIONS): Remove. |
| |
| 2004-06-21 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define. |
| (SUPPORT_SH4_SINGLE): Likewise. |
| (TARGET_SWITCHES): Break out switches for cpu subtargets: |
| (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define. |
| (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise. |
| (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise. |
| (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise. |
| (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise. |
| (TARGET_SWITCHES_SH5_32MEDIA): Likewise. |
| (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise. |
| (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to: |
| (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU) |
| (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to: |
| (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU). |
| (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define. |
| (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise. |
| * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine. |
| (TARGET_DEFAULT): Likewise. |
| * config/sh/t-elf: Amend comment. |
| * config/sh/t-1e, config/sh/t-mlib-sh1: New files. |
| * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise. |
| * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise. |
| * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise. |
| * config/sh/t-mlib-sh4-single: Likewise. |
| * config/sh/t-mlib-sh4-single-only: Likewise. |
| * config/sh/t-mlib-sh5-32media: Likewise. |
| * config/sh/t-mlib-sh5-32media-nofpu: Likewise. |
| * config/sh/t-mlib-sh5-64media: Likewise. |
| * config/sh/t-mlib-sh5-64media-nofpu: Likewise. |
| * config/sh/t-mlib-sh5-compact: Likewise. |
| * config/sh/t-mlib-sh5-compact-nofpu: Likewise. |
| * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb. |
| (MULTILIB_CPUS): Define. |
| (MULTILIB_OPTIONS): Use MULTILIB_CPUS. |
| (MULTILIB_MATCHES): Use some shell code to calculate it. |
| (MULTILIB_EXCEPTIONS): Change to ml/m1. |
| * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC. |
| * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU. |
| (LINK_DEFAULT_CPU_EMUL): Don't redefine. |
| (NO_PROFILE_COUNTERS): Define to 1. |
| * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to. |
| (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. |
| * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine. |
| (MULTILIB_MATCHES): Don't zap. |
| (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES. |
| * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine. |
| (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. |
| (MULTILIB_RAW_DIRNAMES): Define. |
| (MULTILIB_DIRNAMES): Use it. |
| * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*. |
| (sh*linux configurations): Merge into: |
| (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu, |
| --with-multilib-list options. Support sh-superh-elf configuration. |
| (sh*-netbsd*): Use SELECT_SH* macros. |
| (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu". |
| Merge sh*-*-netbsd* configurations into sh-elf configurations. |
| * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete. |
| * config/sh/t-monolib: Likewise. |
| |
| 2004-06-21 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need |
| not imply FPA. |
| |
| 2004-06-21 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (operand_equal_p): Pass flags in recursive calls for |
| binary and relational operations. Add support for TRUTH_ANDIF_EXPR, |
| TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. |
| * tree.c (commutative_tree_code): Also list UNORDERED_EXPR, |
| ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR |
| and TRUTH_XOR_EXPR. |
| |
| 2004-06-21 Paolo Bonzini <bonzini@gnu.org> |
| |
| * rtlanal.c (may_trap_p): Mark LTGT as trapping. |
| |
| 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk> |
| |
| * tree-alias-common.h (struct tree_alias_ops): Change ip and |
| ip_partial to unsigned int. |
| |
| 2004-06-21 Richard Henderson <rth@redhat.com> |
| |
| * c-common.c (verify_sequence_points): Export. |
| (c_expand_expr_stmt): Move to c-typeck.c. |
| * c-common.h (c_expand_expr_stmt): Remove. |
| (verify_sequence_points): Declare. |
| * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt. |
| * c-parse.in (for_init_stmt, stmt): Likewise. |
| * c-tree.h (c_finish_expr_stmt): Declare. |
| (c_tree_expr_nonnegative_p): Remove. |
| * c-typeck.c (c_tree_expr_nonnegative_p): Remove. |
| (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p. |
| (emit_side_effect_warnings): New. |
| (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it. |
| (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions. |
| Use emit_side_effect_warnings. |
| (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR. |
| * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR. |
| * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR |
| with void initializer. |
| (gimplify_target_expr): Handle void BIND_EXPR initializer. |
| * tree-inline.c (estimate_num_insns_1): Fix type lookup for |
| INIT_EXPR and MODIFY_EXPR. |
| * objc/objc-act.c (build_module_descriptor): Use add_stmt |
| instead of c_expand_expr_stmt. |
| |
| 2004-06-21 Paolo Bonzini <bonzini@gnu.org> |
| |
| * fold-const.c (fold_cond_expr_with_comparison): |
| New function, extracted from fold. |
| (fold): Extract code to fold A op B ? A : C, use |
| it to fold A op B ? C : A. Really optimize |
| A & N ? N : 0 where N is a power of two. Avoid |
| relying on canonicalization and recursion for |
| foldings of COND_EXPR to happen. |
| |
| 2004-06-20 David Ayers <d.ayers@inode.at> |
| |
| * objc/objc-act.h (get_object_reference): Rename to |
| get_protocol_reference. |
| (super_type): Rename to objc_super_type. |
| (selector_type): Rename to objc_selector_type. |
| (id_type): Rename to objc_id_type. |
| (instance_type): Rename to objc_instance_type. |
| (protocol_type): Rename to objc_protocol_type. |
| (IS_ID): Update reference to id_type. |
| * objc/objc-act.c (get_object_reference): Rename to |
| get_protocol_reference; add documentation; update references to |
| id_type. |
| (lookup_method_in_protocol_list): Rename class_meth to |
| is_class; add documentation. |
| (finish_message_expr): Rename is_class to class_tree. |
| (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr, |
| next_sjlj_build_try_catch_finally, objc_begin_catch_clause, |
| build_next_objc_exception_stuff, get_arg_type_list, |
| build_objc_method_call): Update references to id_type. |
| (synth_module_prologue, build_objc_symtab_template, |
| build_selector_reference_decl, build_selector, |
| build_selector_translation_table, build_typed_selector_reference, |
| get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list, |
| synth_self_and_ucmd_args): Update references to selector_type. |
| (build_private_template, build_ivar_reference): Update references |
| to instance_type. |
| (synth_module_prologue, build_protocol_reference, |
| build_protocol_expr, start_protocol): Update references to |
| protocol_type. |
| (synth_module_prologue, get_arg_type_list, build_objc_method_call): |
| Update references to super_type. |
| * c-parse.in: (typespec_nonreserved_nonattr): Update |
| references to get_object_reference. |
| * objc/objc-tree.def: Add C mode identifier sequence. |
| |
| 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * loop-invariant.c: New file. |
| * Makefile.in (loop-invariant.o): New. |
| * cfgloop.h (global_cost_for_size, init_set_costs, |
| move_loop_invariants): Declare. |
| * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New |
| functions. |
| (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New |
| variables. |
| * common.opt (floop-optimize2, fmove-loop-invariants): New options. |
| * loop-init.c (loop_optimizer_init): Call init_set_costs. |
| * passes.c (rest_of_handle_loop2): Call move_loop_invariants. |
| (rest_of_compilation): Check flag_loop_optimize2. |
| * toplev.c (process_options): Handle flag_loop_optimize2. |
| * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document. |
| * doc/passes.texi (loop-invariant.c): Document. |
| |
| 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed. |
| |
| 2004-06-20 Richard Henderson <rth@redhat.com> |
| |
| * stmt.c (warn_if_unused_value): Add locus argument. |
| * tree.h (warn_if_unused_value): Update decl. |
| * c-typeck.c (internal_build_compound_expr): Update call. |
| * c-gimplify.c (gimplify_expr_stmt): Likewise. |
| |
| 2004-06-20 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR middle-end/16089 |
| * builtins.c (entry_of_function): Move to ... |
| * cfgrtl.c (entry_of_function): Here and make non-static. |
| * integrate.c (emit_initial_value_sets): Use entry_of_function. |
| * rtl.h (entry_of_function): Prototype. |
| |
| 2004-06-20 Roger Sayle <roger@eyesopen.com> |
| |
| * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3. |
| (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when |
| TARGET_DECOMPOSE_LEA. |
| |
| 2004-06-20 Richard Henderson <rth@redhat.com> |
| |
| * c-common.h (add_decl_stmt): Move to cp-tree.h. |
| * c-decl.c (finish_decl): Don't use add_decl_stmt. |
| * c-parse.in: Likewise. |
| * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR. |
| (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise. |
| * c-semantics.c (add_decl_stmt): Move to cp/semantics.c. |
| |
| 2004-06-20 Richard Henderson <rth@redhat.com> |
| |
| * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def. |
| * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY, |
| CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h. |
| (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT. |
| * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree. |
| * c-pretty-print.c (pp_c_statement): Similarly. |
| * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts, |
| gimplify_if_stmt): Move to cp-gimplify.c. |
| (c_genericize, c_gimplify_expr): Don't call them. |
| * c-semantics.c (push_cleanup): Move to cp/semantics.c. |
| * c-typeck.c (push_cleanup): New. |
| (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else, |
| c_finish_if_stmt): Use COND_EXPR. |
| * tree.h (CLEANUP_EH_ONLY): Update documentation. |
| |
| 2004-06-20 Zack Weinberg <zack@codesourcery.com> |
| |
| * c-common.h (has_c_linkage): New interface. |
| * c-cppbuiltin.c: Include target.h. |
| (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and |
| __PRAGMA_EXTERN_PREFIX when appropriate. |
| * c-pragma.c: Include target.h. |
| Document clarified semantics of symbol-renaming #pragmas. |
| (handle_pragma_redefine_extname, handle_pragma_extern_prefix) |
| (maybe_apply_renaming_pragma): Rewrite according to clarified |
| semantics. Always recognize, but do not necessarily execute. |
| (init_pragma): Unconditionally register symbol-renaming pragmas. |
| * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME |
| and HANDLE_PRAGMA_EXTERN_PREFIX. |
| * target.h (struct gcc_target): Add handle_pragma_redefine_extname |
| and handle_pragma_extern_prefix flags. |
| * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME |
| and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX. |
| * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies. |
| * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, |
| not HANDLE_PRAGMA_REDEFINE_EXTNAME. |
| (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME. |
| (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect. |
| * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, |
| not HANDLE_PRAGMA_EXTERN_PREFIX. |
| (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX. |
| * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine |
| into one section "Symbol-Renaming Pragmas"; clarify; document |
| adjusted semantics. |
| |
| * builtins.c (expand_builtin): Do not issue error for a builtin |
| with no special case code and no DECL_ASSEMBLER_NAME; just do the |
| library call. |
| * c-decl.c (builtin_function): Don't call make_decl_rtl. |
| * c-objc-common.c (has_c_linkage): Stub implementation. |
| * cgraphunit.c (cgraph_expand_function) |
| (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS. |
| |
| 2004-06-19 Roger Sayle <roger@eyesopen.com> |
| |
| * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument |
| instead of both an ARGLIST and a result TYPE. Handle these C99 |
| comparison functions as "polymorphic" builtins. Also handle |
| lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node. |
| (fold_builtin_1): Update calls to fold_builtin_unordered_cmp. |
| Move handling of BUILT_IN_ISUNORDERED from here to there. |
| |
| 2004-06-19 Richard Henderson <rth@redhat.com> |
| |
| * c-common.c, c-common.h (lang_gimplify_stmt): Remove. |
| * c-gimplify.c: Remove unnecessary prototypes. |
| (c_gimplify_stmt): Merge into ... |
| (c_gimplify_expr): ... here. Don't play with prep_stmt. |
| * c-semantics.c (prep_stmt): Remove. |
| * gimplify.c (annotate_one_with_locus): Break out from ... |
| (annotate_all_with_locus): ... here. |
| (gimplify_expr): Add locus to expressions even if pre/post queues |
| are not present. |
| |
| 2004-06-19 Richard Henderson <rth@redhat.com> |
| |
| PR target/15941 |
| * function.c (assign_parms): If not padding upward or intentionally |
| forcing upward padding, take offset_rtx into account when determining |
| the alignment for stack_parm. |
| |
| 2004-06-19 Richard Henderson <rth@redhat.com> |
| |
| PR target/15550 |
| * ifcvt.c (noce_try_move): Recognize all generated instructions. |
| |
| 2004-06-19 Jan Hubicka <jh@suse.cz> |
| |
| * function.c (free_after_compilation): Do not free computed_goto_common*. |
| * function.h (struct function): Kill computed_goto_common*. |
| * stmt.c (expand_computed_goto): Do not commonize the computed gotos. |
| * tree-cfg.c (disband_implicit_edges): Do not forward across the |
| commonized computed goto. |
| |
| 2004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support |
| in binutils. |
| |
| 2004-06-19 Andrew Pinski <apinski@apple.com> |
| |
| PR c++/15721 |
| * toplev.c (wrapup_global_declarations): Do not check |
| TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check |
| cgraph_varpool_node's needed field. |
| |
| 2004-06-19 Jan Hubicka <jh@suse.cz> |
| Steven Bosscher <stevenb@suse.de> |
| |
| CFG transparent RTL expansion: |
| * Makefile.in (cfgexpand.o): New object file. |
| (builtins.o): Add dependency on basic-block.h |
| * builtins.c: Include basic-block.h |
| (entry_of_function): New function. |
| (expand_builtin_apply_args, expand_builtin_saveargs): Use it. |
| * cfgexpand.c: New file. |
| * expr.c (execute_expand, pass_expand): Kill. |
| * pass.c (rest_of_compilation): Do not build CFG unless called from |
| coverage code. |
| * tree-cfg.c (delete_tree_cfg): Rename to.. |
| (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself. |
| * tree-flow.h (delete_tree_cfg_annotations): Declare. |
| (dleete_tree_cfg): Kill. |
| * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill. |
| (execute_del_cfg): Rename to... |
| (execute_free_datastructures): This one... |
| (pass_del_cfg): Rename to... |
| (pass_free_datastructures): ... this one; Do not kill PROP_cfg. |
| (init_tree_optimization_passes): Make cfg build and profiling to happen |
| unconditionally. |
| |
| 2004-06-19 Steven Bosscher <stevenb@suse.de> |
| |
| * tree-mudflap.c (mf_decl_cache_locals): Skip labels before |
| inserting the cache variables. |
| |
| * tree-mudflap.c: Include headers to make basic_block available. |
| Move functions around such that related functions are near each |
| other. Add prototypes for all static functions. Add comments |
| briefly explaining what IR the mudflap1 and mudflap2 work on and |
| what they do. |
| (mudflap_function_decls): Rename to execute_mudflap_function_decls. |
| (mudflap_function_ops): Rename to execute_mudflap_function_ops. |
| (pass_mudflap_1, pass_mudflap_2): Update. |
| (mf_decl_cache_locals): Make it work on the CFG instead of the saved |
| function tree. |
| (mf_build_check_statement_for): Make it work on the CFG. |
| (mf_xform_derefs_1): Likewise. Cleanup code style. |
| (mf_xform_derefs): Likewise. |
| |
| 2004-06-19 Jan Hubicka <jh@suse.cz> |
| |
| * tree-cfg.c (label_to_block): Invent the label destination for |
| undefined labels. |
| (cleanup_dead_labels): Update table in the case label_to_block added |
| new label. |
| |
| 2004-06-18 Richard Henderson <rth@redhat.com> |
| |
| PR c++/16036 |
| * gimple-low.c (lower_function_body): Generate return statement for |
| fall off the end of the function here ... |
| * tree-cfg.c (make_edges): ... instead of here. |
| * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING. |
| |
| 2004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-ssa.c (raise_value): Removed. |
| (get_eq_name, check_phi_redundancy): New functions. |
| (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm. |
| |
| 2004-06-18 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, |
| UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add |
| constant folding for unordered comparison tree nodes. If both |
| operands are real constants, call fold_relational_const. If either |
| operand is a NaN, evaluate the other for side-effects and return a |
| constant. Optimize (double)float1 CMP (double)float2 into the |
| equivalent float1 CMP float2. |
| (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR, |
| ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, |
| LTGT_EXPR>: Call fold_relational_const for constant operands. |
| (fold_relational_const): Add support for unordered comparison tree |
| nodes. Don't constant fold "ordered" floating point comparisons |
| against NaN if when flag_trapping_math is set. |
| |
| 2004-06-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * fold-const.c (build_range_check): If !in_p and recursive call |
| fails, exit immediately. If high - low overflows and etype is |
| a signed type, retry with unsigned etype. |
| (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent |
| to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE. |
| |
| 2004-06-18 Richard Henderson <rth@redhat.com> |
| |
| * c-gimplify.c (gimplify_condition): Remove. |
| (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't |
| call it. |
| |
| 2004-06-18 Richard Henderson <rth@redhat.com> |
| |
| * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and |
| switch estimates. |
| |
| 2004-06-18 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define. |
| (NORMAL_TEXT_SECTION_NAME): Define. |
| (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. |
| (SECTION_FORMAT_STRING): Define. |
| |
| 2004-06-18 Steven Bosscher <stevenb@suse.de> |
| |
| * config/xtensa/xtensa.c |
| (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. |
| * xtensa.md: Replace the old pipeline description with a DFA model. |
| |
| 2004-06-18 Steven Bosscher <stevenb@suse.de> |
| Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/s390/s390.md: Remove the generic pipeline description. |
| * config/s390/2064.md: Make all insn reservations apply to |
| the z900, g5 and g6. |
| * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove. |
| (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): |
| Define to hook_int_void_1. |
| (s390_adjust_cost): Cleanup. Don't check address dependency here. |
| (s390_first_cycle_multipass_dfa_lookahead): Always return 4. |
| |
| 2004-06-18 Daniel Berlin <dberlin@dberlin.org> |
| Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t. |
| (create_stmt_ann): Ditto. |
| (create_tree_ann): New function. |
| (create_cst_ann): Remove. |
| (create_expr_ann): Ditto. |
| |
| * tree-flow-inline.h (cst_ann): Remove. |
| (get_cst_ann): Ditto. |
| (get_expr_ann): Ditto. |
| (expr_ann): Ditto. |
| (get_tree_ann): New function. |
| (tree_ann): Ditto. |
| (ann_type): tree_ann -> tree_ann_t. |
| * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed. |
| (struct cst_ann_d): Removed. |
| (struct expr_ann_d): Ditto. |
| (union tree_ann_d): Removed cst and expr. |
| (tree_ann): Renamed to tree_ann_t. |
| * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t. |
| * tree-ssa-pre.c (get_value_handle): Rewrite for single common |
| annotation. |
| (set_value_handle): Ditto. |
| (phi_translate): Ditto. |
| * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t. |
| |
| 2004-06-18 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/t-linux64: New file. |
| * config.gcc: Add it to tmake_file for sh64*-*-linux*. |
| |
| 2004-06-18 Paolo Bonzini <bonzini@gnu.org> |
| |
| * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl. |
| (unshare_all_rtl_again): Call unshare_all_rtl_1. |
| (unshare_all_rtl): New. |
| * function.c (instantiate_virtual_regs): Remove parameters. |
| * function.h (instantiate_virtual_regs): Add prototype. |
| * rtl.h (unshare_all_rtl): Add prototype. |
| * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove |
| prototype. |
| * passes.c: Remove assertions on the parameters to |
| rest_of_handle_* functions. Remove the parameters to |
| the functions, replacing decl with current_function_decl |
| and insns with get_insns (). |
| |
| 2004-06-17 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (constant_boolean_node): Handle boolean_type_node |
| directly, return either boolean_true_node or boolean_false_node. |
| |
| 2004-06-18 Kelley Cook <kcook@gcc.gnu.org> |
| |
| * opts.sh: Delete. Break out generated code to next four files. |
| * opt-gather.awk: New file. |
| * optc-gen.awk: New file. |
| * opth-gen.awk: New file. |
| * opt-functions.awk: New common file. |
| * Makefile.in: Update for above. |
| * configure.ac: Update comment. |
| * configure: Regenerate. |
| |
| 2004-06-17 Richard Henderson <rth@redhat.com> |
| |
| * c-common.c (flag_objc_sjlj_exceptions): New. |
| * c-common.h (flag_objc_sjlj_exceptions): Declare. |
| * c-opts.c (c_common_handle_option): Set it. |
| (c_common_post_options): Handle interation of different |
| objective-c exception and runtime switches. |
| * c-decl.c (c_eh_initialized_p): New. |
| (finish_decl): Use it instead of local eh_initialized_p. |
| * c-parse.in (nested_function, notype_nested_function): Record |
| the result of compstmt. |
| (compstmt_or_error): Likewise. |
| (compstmt): Don't add_stmt the result. |
| (stmt): Don't return anything. Rewrite objc try and sync rules. |
| (objc_try_stmt, objc_catch_list): Remove. |
| (objc_catch_block, objc_finally_block): Remove. |
| (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New. |
| (objc_try_catch_clause, objc_finally_clause): New. |
| (objc_try_catch_stmt): Rewrite. |
| * c-tree.h (c_eh_initialized_p): Declare. |
| * c-opt (fobjc-sjlj-exceptions): New. |
| * except.c (output_function_exception_table): Don't call cgraph |
| on non-decls. |
| * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR, |
| UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack, |
| catch_count_stack, exc_binding_stack, if_nesting_count, |
| blk_nesting_count, objc_enter_block, objc_exit_block, |
| objc_declare_variable, val_stack_push, val_stack_pop, |
| objc_build_try_enter_fragment, objc_build_extract_expr, |
| objc_build_try_exit_fragment, objc_build_extract_fragment, |
| objc_build_try_prologue, objc_build_try_epilogue, |
| objc_build_catch_stmt, objc_build_catch_epilogue, |
| objc_build_finally_prologue, objc_build_finally_epilogue, |
| objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, |
| objc_build_synchronized_epilogue): Remove. |
| (objc_create_temporary_var, struct objc_try_context, cur_try_context, |
| objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr, |
| next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp, |
| next_sjlj_build_exc_extract, next_sjlj_build_catch_list, |
| next_sjlj_build_try_catch_finally, objc_begin_try_stmt, |
| objc_begin_catch_clause, objc_finish_catch_clause, |
| objc_build_finally_clause, objc_finish_try_stmt, |
| objc_build_synchronized): New. |
| (objc_is_object_id, objc_is_class_id): New. |
| (objc_comptypes): Use them. |
| (build_next_objc_exception_stuff): Break NeXT sjlj out from |
| build_objc_exception_stuff. |
| (synth_module_prologue): Update to match. |
| (objc_build_throw_stmt): Use cur_try_context to decide if |
| we're in a @catch. |
| * objc/objc-act.h: Update prototypes. |
| (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove. |
| |
| 2004-06-17 Andrew Pinski <apinski@apple.com> |
| |
| * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>): |
| Use TYPE_FIELDS instead of TYPE_VALUES. |
| |
| 2004-06-17 Jason Merrill <jason@redhat.com> |
| |
| PR c++/16015 |
| * gimplify.c (gimplify_target_expr): Handle void initializer. |
| * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise. |
| * doc/c-tree.texi (Expression trees): Update TARGET_EXPR |
| and AGGR_INIT_EXPR. |
| |
| 2004-06-17 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (fold_relational_const): Use constant_boolean_node. |
| |
| 2004-06-17 Jan Hubicka <jh@suse.cz> |
| |
| PR target/15433 |
| * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix |
| operand numbering in the output template. |
| (SSE DF cmov 0 splitter): The conditional is VOIDmode. |
| |
| 2004-06-17 Jan Hubicka <jh@suse.cz> |
| |
| * except.c (can_throw_internal): Recognize RESX expresisons. |
| |
| 2004-06-17 Jan Hubicka <jh@suse.cz> |
| |
| * cfgbuild.c (make_edges): Do not use label_value_list. |
| (find_basic_blocks_1): Do not collect label_value_list. |
| (find_sub_basic_blocks): Update call of make_edges. |
| |
| 2004-06-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT. |
| * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p. |
| (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers. |
| (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'. |
| (get_v_may_def_result_ptr): Return a def_operand_p. |
| (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p. |
| (get_v_must_def_op_ptr): Return a def_operand_p. |
| (get_phi_result_ptr): New. Return a pointer to the result of a PHI. |
| (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI. |
| (phi_element_for_edge): Remove. |
| * tree-flow.h (propagate_value, replace_exp): Change prototype. |
| (propagate_tree_value): Add new prototype. |
| (phi_element_for_edge): Remove prototype. |
| * tree-into-ssa.c (mark_def_sites): Use new operand types. |
| (prepare_operand_for_rename): Split into two functions. |
| (prepare_use_operand_for_rename): Prepare use operands. |
| (prepare_def_operand_for_rename): Prepare def operands. |
| (rewrite_stmt): Use new operand types. |
| (rewrite_operand): Use new operand types, change parameter type. |
| * tree-outof-ssa.c (replace_variable): Split into two functions. |
| (replace_use_variable): Rewrite uses. |
| (replace_def_variable): Rewrite defs. |
| (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types. |
| * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types. |
| (add_phi_arg, remove_phi_arg_num): Use new operand types. |
| * tree-ssa-ccp.c (substitute_and_fold): Use new operand types. |
| (ccp_fold, replace_uses_in): Use new operand types. |
| * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann |
| and no longer set the value, change parameter type. |
| (replace_exp_1): Use new operand types. |
| (propagate_value): Change parameter type, use new operand types. |
| (propagate_tree_value): Propagate_value without SSA operands. |
| (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types. |
| (cprop_into_successor_phis): Use new operand types. |
| * tree-ssa-dom.c (thread_across_edge): Use new operand types. |
| (eliminate_redundant_computations): Use new operand types. |
| * tree-ssa-dse.c (fix_phi_uses): Use new operand_types. |
| (fix_stmt_v_may_defs): Use new operand_types. |
| * tree-ssa-live.c (create_ssa_var_map): Use new operand_types. |
| (build_tree_conflict_graph): Use new operand_types. |
| * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE. |
| * tree-ssa-operands.c (struct freelist_d): Remove. |
| (check_optype_freelist, add_optype_freelist): Remove. |
| (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype, |
| allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc. |
| (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): |
| Call ggc_free instead of add_optype_freelist. |
| (init_ssa_operands, fini_ssa_operands): Remove free list code. |
| (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands. |
| * tree-ssa-operands.h (struct def_optype_d): Change underlying type. |
| (struct use_optype_d): Change underlying type. |
| (def_operand_p, use_operand_p): New types for pointers to operands. |
| (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, |
| V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly. |
| (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand |
| pointer types. |
| (SET_USE, SET_DEF): New macros to set operands from their pointer. |
| (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP, |
| SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands. |
| (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the |
| PHI result as an operand. |
| (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE, |
| PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments. |
| * tree-ssa-pre.c (eliminate): Call propagate_tree_value. |
| * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use |
| PHI_ARG_DEF_FROM_EDGE. |
| * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE. |
| (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE. |
| |
| 2004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| PR tree-optimization/15991 |
| * tree-cfg.c (tree_block_label): Export. |
| * tree-flow-inline.h (bsi_after_labels): New function. |
| * tree-flow.h (bsi_after_labels, tree_block_label): Declare. |
| * tree-ssa.c (propagate_into_addr): New function. |
| (replace_immediate_uses): Handle propagation of pointer constants. |
| (raise_value): Do not restrict propagation of pointer constants. |
| * tree-ssanames.c (duplicate_ssa_name): New function. |
| * tree.h (duplicate_ssa_name): Declare. |
| |
| 2004-06-17 David Ayers <d.ayers@inode.at> |
| |
| * c-parse.in: Unify Objective-C token names. |
| |
| 2004-06-17 Zack Weinberg <zack@codesourcery.com> |
| |
| Bug 14610 |
| * Makefile.in (min-insn-modes.o): Correct dependencies. |
| * real.c (encode_ieee_extended, decode_ieee_extended): Always |
| produce/consume 12-byte little-endian Intel format. |
| (encode_ieee_extended_128, decode_ieee_extended_128): Delete. |
| (encode_ieee_extended_motorola, decode_ieee_extended_motorola) |
| (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96) |
| (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128): |
| New functions which convert between 12-byte little-endian Intel |
| format and the desired format. |
| (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format) |
| (ieee_extended_intel_96_format, ieee_extended_intel_128_format): |
| Update. |
| |
| 2004-06-17 Zack Weinberg <zack@codesourcery.com> |
| |
| * expmed.c (expand_mult_const): In sanity check, compare only |
| the bits of val and val_so_far that are significant in the |
| result mode. |
| |
| 2004-06-17 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c: Update comments. |
| (val_expr_pair_eq): Factor code from here. |
| (expr_pred_trans_eq): and here. |
| (expressions_equal_p): To here. |
| (print_value_set): Print value for expression. |
| (phi_trans_lookup): Rename some variables. |
| (lookup): Ditto. |
| (value_exists_in_set_bitmap): Ditto. |
| (value_remove_from_set_bitmap): Ditto. |
| (value_insert_into_set_bitmap): Ditto. |
| |
| 2004-06-17 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/s390/s390-modes.def (CCL3mode): New machine mode. |
| * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode. |
| (s390_alc_comparison, s390_slb_comparison): Likewise. |
| (s390_branch_condition_mask): Likewise. |
| * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New. |
| ("*subsi3_cc2", "*subsi3_cconly2"): New. |
| |
| * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and |
| ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison. |
| * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison): |
| Handle SIGN_EXTEND and ZERO_EXTEND. |
| |
| * config/s390/s390-protos.h (s390_expand_addcc): New prototype. |
| * config/s390/s390.c (s390_expand_addcc): New function. |
| * config/s390/s390.md ("adddicc", "addsicc"): New expanders. |
| ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns. |
| ("sltu", "sgtu", "sleu", "sgeu"): New expanders. |
| |
| 2004-06-17 Ben Elliston <bje@au.ibm.com> |
| |
| * tree-alias-common.c: Add whitespace. |
| * tree-inline.c: Correct comment about this file's purpose. |
| * tree-optimize.c: Likewise. |
| * tree-tailcall.c: Likewise. |
| |
| * tree-alias-ander.h: Add standard top-of-file comment. |
| * tree-alias-common.h: Likewise. |
| * tree-alias-type.h: Likewise. |
| |
| 2004-06-16 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (compute_avail): Value number uses as well. |
| Strip useless type conversions. |
| Casts have to be treated slightly different than normal unaries. |
| |
| 2004-06-16 Richard Henderson <rth@redhat.com> |
| |
| * c-common.def (COMPOUND_STMT): Remove. |
| * c-common.c (finish_fname_decls): Don't look through it. |
| * c-typeck.c (c_tree_expr_nonnegative_p): Likewise. |
| * c-common.h (COMPOUND_BODY): Remove. |
| (c_common_stmt_codes): Remove COMPOUND_STMT. |
| * c-dump.c (c_dump_tree): Likewise. |
| * c-gimplify.c (c_gimplify_stmt): Likewise. |
| * c-pretty-print.c (pp_c_statement): Likewise. |
| * tree.h (DECL_SAVED_TREE): Update commentary. |
| * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT. |
| (CASE_LABEL_EXPR): Rename from CASE_LABEL. |
| (GOTO_EXPR): Rename from GOTO_STMT. |
| (GOTO_FAKE_P): Remove. |
| (COMPOUND_STMT): Remove. |
| (HANDLER): Update wrt COMPOUND_STMT. |
| (STMT_EXPR): Likewise. |
| (LABEL_EXPR): Rename from LABEL_STMT. |
| (SCOPE_STMT): Remove. |
| * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look |
| through COMPOUND_STMT. |
| |
| 2004-06-16 Richard Henderson <rth@redhat.com> |
| |
| * c-common.h (c_begin_if_stmt, c_begin_while_stmt, |
| c_finish_while_stmt_cond): Remove decls. |
| * c-parse.in (if_prefix): Don't save c_begin_if_stmt result. |
| * c-typeck.c (c_begin_if_stmt): Return void. |
| (c_begin_else): Tidy. Save stmt_count. |
| * c-tree.h (c_begin_if_stmt): Update decl. |
| |
| * objc/objc-act.c (objc_build_try_enter_fragment, |
| objc_build_extract_fragment, objc_build_try_epilogue, |
| objc_build_catch_stmt, objc_build_catch_epilogue, |
| objc_build_finally_prologue, objc_build_finally_epilogue): Update |
| for if builder function changes. |
| |
| 2004-06-16 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/s390/s390.c (struct machine_function): New member |
| last_restore_gpr. |
| (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters. |
| Do not modify machine->save_return_addr_p or regs_ever_live. |
| Fill in machine->last_restore_gpr. |
| (s390_optimize_prolog): Use s390_frame_info to compute registers |
| to save/restore, remove duplicated code. |
| (s390_arg_frame_offset): Use s390_frame_info to compute frame |
| size, remove duplicated code. |
| (s390_emit_prologue): Adapt s390_frame_info call. Update |
| machine->save_return_addr_p and regs_ever_live. |
| (s390_emit_epilogue): Use machine->last_restore_gpr instead of |
| machine->last_save_gpr. |
| |
| 2004-06-16 Richard Henderson <rth@redhat.com> |
| |
| * c-parse.in (if_stmt_locus): Remove. |
| (if_prefix): Increment stmt_count; pass it to c_finish_if_cond. |
| (select_or_iter_stmt): Move empty if warnings to c-typeck.c. |
| * c-typeck.c (if_elt): Sort by expected size. Rename locus to |
| empty_locus. Add stmt_count, saw_else. |
| (c_begin_if_stmt): Push if_stack here. |
| (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count. |
| (c_finish_then, c_finish_else): Record empty_locus. |
| (c_begin_else): Rename from c_expand_start_else. Record stmt_count. |
| (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty |
| if or else body. |
| * c-tree.h: Update prototypes. |
| |
| 2004-06-16 Steven Bosscher <stevenb@suse.de> |
| |
| * tree.h (PHI_CHAIN): New. |
| * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c, |
| tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c, |
| tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c, |
| tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c, |
| tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN |
| when traversing a list of PHI_NODEs. |
| |
| 2004-06-16 Bernardo Innocenti <bernie@develer.com> |
| |
| PR target/13292 |
| * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY |
| on -msoft-float. |
| (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for |
| 68040 and soft-float. |
| * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881 |
| in the TARGET_68040_ONLY case. |
| |
| 2004-06-16 Peter Barada <peter@the-baradas.com> |
| |
| * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q. |
| (movsi_cf): Make named, don't match TARGET_CFV4. |
| (pushexthisi_const): Use mov3q if possible. |
| (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern |
| to special case mvz.w for ColdFire V4. |
| (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern |
| to special case mvz.b for ColdFire V4. |
| (udivmodhi4, divmodhi4): Use mvz to zero extend arg for |
| divide. |
| (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible. |
| * config/m68k/m68k.c(valid_mov3q_const): New function. |
| (const_method): SWAP is valid for ColdFire. |
| (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4. |
| * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here. |
| |
| 2004-06-16 Richard Henderson <rth@redhat.com> |
| |
| * c-common.def (CASE_LABEL): Remove. |
| * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL. |
| (match_case_to_enum_1): Likewise. |
| * c-common.h (c_common_stmt_codes): Remove CASE_LABEL. |
| * c-dump.c (c_dump_tree): Likewise. |
| * c-gimplify.c (c_gimplify_stmt): Likewise. |
| * c-pretty-print.c (pp_c_statement): Likewise. |
| * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR. |
| * tree.h (CASE_LOW): Update commentary. |
| |
| 2004-06-16 Richard Henderson <rth@redhat.com> |
| |
| * c-common.def (ASM_STMT): Remove. |
| * c-common.h (c_common_stmt_codes): Remove ASM_STMT. |
| * c-dump.c (c_dump_tree): Likewise. |
| * c-gimplify.c (c_gimplify_stmt): Likewise. |
| * c-pretty-print.c (pp_c_statement): Likewise. |
| * c-typeck.c (build_asm_expr): Use ASM_EXPR. |
| * tree.h: Fix commentary. |
| |
| 2004-06-16 Richard Henderson <rth@redhat.com> |
| |
| * c-common.def (GOTO_STMT, LABEL_STMT): Remove. |
| * c-common.c (c_add_case_label): Use LABEL_EXPR. |
| * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove. |
| (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT. |
| * c-dump.c (c_dump_tree): Likewise. |
| * c-gimplify.c (c_gimplify_stmt): Likewise. |
| * c-pretty-print.c (pp_c_statement): Likewise. |
| * c-parse.in (stmt): Use GOTO_EXPR. |
| (label): Use LABEL_EXPR. |
| * c-semantics.c (build_stmt): Set TREE_TYPE to void. |
| * tree-inline.c (copy_body_r): Don't build empty BLOCKs. |
| |
| 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * cfgcleanup.c (try_simplify_condjump): Update test to make |
| sure we have a conditional branch around am unconditional branch. |
| |
| 2004-06-16 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file. |
| |
| 2004-06-16 Dale Johannesen <dalej@apple.com> |
| |
| * loop.c (loop_givs_reduce): Avoid miscompilation of |
| loops entered at bottom. |
| |
| 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * cfglayout.c (fixup_reorder_chain): Handle case where the |
| destination of E_FALL is EXIT_BLOCK_PTR. |
| |
| 2004-06-16 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/15653 |
| * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops |
| after shifts before asm. |
| |
| 2004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| PR tree-optimization/15993 |
| * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its |
| destination is unchanged. |
| |
| 2004-06-16 Andreas Jaeger <aj@suse.de> |
| |
| * doc/install.texi (Configuration): Update description for |
| --enable-version-specific-runtime-libs. |
| |
| 2004-06-16 Paolo Bonzini <bonzini@gnu.org> |
| |
| * doc/install.texi: boehm-gc now uses automake 1.8.5. |
| |
| 2004-06-16 Paolo Bonzini <bonzini@gnu.org> |
| |
| * toplev.h (rest_of_compilation): Adjust prototype. |
| |
| 2004-06-16 Paolo Bonzini <bonzini@gnu.org> |
| |
| * coverage.c: Remove argument to rest_of_compilation. |
| * expr.c (execute_expand, set_save_expr_context, pass_expand): New. |
| * passes.c (rest_of_compilation): Remove argument. |
| (pass_rest_of_compilation): New. |
| (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_regrename |
| 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_web, rest_of_handle_branch_prob |
| rest_of_handle_value_profile_transformations, rest_of_handle_cfg |
| rest_of_handle_addressof, rest_of_handle_jump_bypass |
| rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2): |
| Check that the two arguments are actually superfluous. |
| * tree-optimize.c (register_dump_files): Add properties argument. |
| Track validity of passes. Only initialize dump files for |
| tree-based passes. Store the full set of provided passes in |
| the pass. |
| (init_tree_optimization_passes): Register pass_expand and |
| pass_rest_of_compilation. |
| (execute_one_pass): Do not track the presence of required properties |
| here. Set in_gimple_form. Do not update current_properties. |
| (current_properties): Remove. |
| (set_save_expr_context): Remove. |
| (tree_rest_of_compilation): Do not set in_gimple_form. Do not |
| expand to RTL here, and do not call rest_of_compilation. Push |
| GGC context even before gimplification. |
| * tree-pass.h (PROP_rtl, PROP_trees): New flags. |
| (pass_expand, pass_rest_of_compilation): Declare. |
| |
| 2004-06-15 Jeff Law <law@redhat.com> |
| |
| * fold-const.c (swap_tree_comparison): No longer static. |
| (tree_swap_operands_p): Similarly. Return true if both operands |
| are SSA_NAMEs and the first operand has a higher version number than |
| the second operand. |
| * tree.h (swap_tree_comparison): Prototype. |
| (tree_swap_operands_p): Prototype. |
| * tree-ssa-operands.c (get_expr_operands): For commutative |
| operators and relational comparisons, canonicalize the |
| order of the operands. |
| |
| 2004-06-15 Richard Henderson <rth@redhat.com> |
| |
| * c-common.c (lang_gimplify_stmt): Remove next_p argument. |
| (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then, |
| c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt, |
| c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c. |
| (finish_fname_decls, fname_decl): Use statement_lists. |
| (c_expand_expr_stmt): Don't set last_expr_type. |
| (c_type_hash): Fix indentation. |
| (c_safe_from_p): Don't follow TREE_CHAIN. |
| (c_tree_chain_matters_p): Remove. |
| * c-common.def (SCOPE_STMT): Remove. |
| (CLEANUP_STMT): Redefine to contain its own body. |
| * c-common.h (struct stmt_tree_s): Remove x_last_stmt, |
| x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack. |
| Add x_cur_stmt_list. |
| (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove. |
| (cur_stmt_list): New. |
| (STATEMENT_LIST_STMT_EXPR): New. |
| (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P, |
| SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove. |
| (CLEANUP_BODY): New. |
| (CLEANUP_DECL): Move to operand 2. |
| (c_common_stmt_codes): Remove SCOPE_STMT. |
| (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove. |
| * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove. |
| (c_push_function_context, c_pop_function_context): Don't save it. |
| (finish_decl): Set TREE_USED on the decl for a cleanup. |
| Use push_cleanup. |
| (store_parm_decls): Use statement lists. |
| (finish_function): Remove compstmt rule workaround. Use statement |
| lists. Call finish_fname_decls after finalizing the body. |
| (c_begin_compound_stmt): Move to c-typeck.c. |
| * c-dump.c (c_dump_tree): Remove SCOPE_STMT. |
| * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New. |
| (c_genericize): Invoke them. |
| (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT. |
| (c_build_bind_expr): Export. |
| (gimplify_block, gimplify_cleanup): Remove. |
| (gimplify_condition): Use gimplify_stmt. |
| (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack. |
| (gimplify_if_stmt): Remove recursion hack. |
| (c_gimplify_expr): Remove STMT_EXPR handling. |
| (stmt_expr_last_stmt, gimplify_stmt_expr): Remove. |
| (is_last_stmt_of_scope): Remove. |
| * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove. |
| * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt, |
| c_end_compound_stmt. |
| * c-objc-common.c (build_cdtor): Likewise. |
| * c-parse.in (primary): Use c_finish_stmt_expr. |
| (push_scope, pop_scope): Remove. |
| (c99_block_start, compstmt_start): Use c_begin_compound_stmt. |
| (c99_block_end, compstmt): Use c_end_compound_stmt. |
| (c99_block_lineno_labeled_stmt): Likewise. |
| (compstmt_primary_start): Use c_begin_stmt_expr. |
| (simple_if, select_or_iter_stmt): Update calls to stmt builders. |
| (do_stmt_start): Fill in body directly. |
| (lineno_stmt): Avoid setting lineno on constants. |
| * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST. |
| Remove SCOPE_STMT. |
| * c-semantics.c (begin_stmt_tree): Remove. |
| (push_stmt_list, re_push_stmt_list, pop_stmt_list): New. |
| (add_stmt): Use statement lists. |
| (add_scope_stmt, finish_stmt_tree): Remove. |
| (push_cleanup): New. |
| * c-tree.h: Move some decls from c-common.h. |
| * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists. |
| (do_case, c_finish_case): Likewise. |
| (c_finish_then): Take body for then as argument. |
| (c_finish_else): Similarly. |
| (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, |
| c_finish_for_stmt_incr, c_finish_for_stmt): New. |
| (c_begin_stmt_expr, c_finish_stmt_expr): New. |
| (c_begin_compound_stmt): Do scope management. |
| (c_end_compound_stmt): New. |
| * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR. |
| * gimplify.c (voidify_wrapper_expr): Accept temporary argument. |
| Look through exception handling constructs. |
| (gimplify_bind_expr): Accept temporary argument. |
| (gimplify_target_expr): Special case BIND_EXPR bodies. |
| (gimplify_expr): Handle fallback == fb_none like a statement. |
| * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill. |
| * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove. |
| * langhooks.h (tree_chain_matters_p): Remove. |
| * stub-objc.c (objc_clear_super_receiver): New. |
| * tree-gimple.h (voidify_wrapper_expr): Update decl. |
| (append_to_statement_list, append_to_statement_list_force): Move |
| to tree-iterator.h. |
| * tree-inline.c (expand_call_inline): Update call. |
| (clone_body): Use statement lists. |
| (walk_tree): Don't check tree_chain_matters_p. |
| (copy_tree_r): Likewise. |
| * tree-iterator.c (alloc_stmt_list): Clear lang bits. |
| (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly. |
| * tree-iterator.h (append_to_statement_list, |
| append_to_statement_list_force): Moved from tree-gimple.h. |
| * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump. |
| * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt. |
| (objc_enter_block): Likewise. |
| (objc_exit_block): Use c_end_compound_stmt. |
| (objc_build_try_enter_fragment): Add #error and comment for |
| rewriting for OBJCPLUS. |
| (objc_build_extract_fragment, objc_build_try_epilogue, |
| objc_build_catch_stmt, objc_build_finally_prologue, |
| objc_build_finally_epilogue): Update for C statement builders. |
| * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): |
| Remove. |
| |
| 2004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * df.c (df_reg_clobber_gen): Removed. |
| (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute): |
| Make more effective for hard regs. |
| * ra-build.c (livethrough_conflicts_bb): Check contains_call. |
| |
| 2004-06-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| * c-pragma.h (c_lex_string_translate): Change type to int. |
| * c-parse.in: Change all assignments of c_lex_string_translate |
| to true and false to 1 and 0. |
| * c-lex.c (c_lex_string_translate): Likewise. |
| (lex_string): Convert string without translation in the -1 |
| case. |
| |
| 2004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca> |
| |
| * convert.h: Add include guards |
| |
| 2004-06-15 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-flow-inline.h: Document all functions. |
| |
| 2004-06-15 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node. |
| * tree-dfa.c (create_stmt_ann): Ditto. |
| * tree-pretty-print.c (dump_generic_node): Remove E* node handling. |
| * tree-inline.c (estimate_num_insns_1): Ditto. |
| * tree.c (tree_size): Ditto. |
| (make_node_stat): Ditto. |
| (tree_node_structure): Ditto. |
| (ephi_node_elt_check_failed): Remove. |
| (is_essa_node): Ditto. |
| * tree.def (EPHI_NODE): Ditto. |
| (EEXIT_NODE): Ditto. |
| (EUSE_NODE): Ditto. |
| (EKILL_NODE): Ditto. |
| * tree.h (EREF_NODE_CHECK): Remove. |
| (EPHI_NODE_ELT_CHECK): Ditto. |
| (struct tree_eref_common): Ditto. |
| (struct tree_euse_node): Ditto. |
| (struct ephi_arg_d): Ditto. |
| (struct tree_ephi_node): Ditto. |
| (ephi_node_elt_check_failed): Remove prototype. |
| (is_essa_node): Ditto. |
| (enum tree_node_structure_enum): Remove TS_E*_NODE. |
| (union tree_node): Remove E*_NODE uses. |
| |
| 2004-06-15 Jerry Quinn <jlquinn@optonline.net> |
| |
| * alias.c (record_set, record_base_value, canon_rtx, get_addr, |
| nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P. |
| * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set): |
| Likewise. |
| * builtins.c (expand_builtin_setjmp, expand_builtin_apply, |
| expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp, |
| expand_builtin_strcmp, expand_builtin_strncmp, |
| expand_builtin_frame_address): Likewise. |
| * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs, |
| insert_one_insn): Likewise. |
| * calls.c (prepare_call_address, precompute_register_parameters, |
| precompute_arguments, expand_call, emit_library_call_value_1): Likewise. |
| * cfganal.c (flow_active_insn_p): Likewise. |
| * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p, |
| combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P, |
| subst, combine_simplify_rtx, simplify_if_then_else, simplify_set, |
| make_extraction, recog_for_combine, gen_lowpart_for_combine, |
| simplify_comparison, record_dead_and_set_regs_1, |
| record_dead_and_set_regs, record_promoted_value, |
| check_promoted_subreg, get_last_value_validate, get_last_value, |
| reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes, |
| unmentioned_reg_p_1): Likewise. |
| * conflict.c (mark_reg): Likewise. |
| * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost, |
| mention_regs, insert_regs, lookup, lookup_for_remove, insert, |
| merge_equiv_classes, flush_hash_table, invalidate, |
| remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, |
| invalidate_for_call, use_related_value, canon_hash, exp_equiv_p, |
| cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant, |
| record_jump_cond, cse_insn, addr_affects_sp_p, |
| invalidate_from_clobbers, cse_process_notes, cse_around_loop, |
| cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode, |
| cse_cc_succs, cse_condition_code_reg): Likewise. |
| * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p, |
| cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx, |
| cselib_record_set, cselib_record_sets): Likewise. |
| * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms, |
| dbxout_block): Likewise. |
| * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise. |
| * dojump.c (do_jump): Likewise. |
| * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg, |
| is_based_loc, rtl_for_decl_location): Likewise. |
| * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl, |
| set_decl_incoming_rtl, mark_user_reg): Likewise. |
| * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg, |
| copy_to_suggested_reg, allocate_dynamic_stack_space, |
| probe_stack_range, hard_function_value): Likewise. |
| * expmed.c (store_bit_field, store_fixed_bit_field, |
| store_split_bit_field, extract_bit_field, extract_fixed_bit_field, |
| extract_split_bit_field, expand_divmod, emit_store_flag_force): |
| Likewise. |
| * expr.c (convert_move, convert_modes, |
| block_move_libcall_safe_for_call_parm, emit_group_load, use_reg, |
| use_group_regs, emit_move_insn, emit_move_insn_1, |
| compress_float_constant, push_block, emit_single_push_insn, |
| emit_push_insn, get_subtarget, expand_assignment, store_expr, |
| store_constructor, store_field, force_operand, safe_from_p, |
| expand_expr_real_1, expand_increment, do_store_flag, do_tablejump): |
| Likewise. |
| * final.c (profile_function, final_scan_insn, alter_subreg, |
| get_mem_expr_from_op, output_asm_operand_names, output_operand, |
| only_leaf_regs_used, leaf_renumber_regs_insn): Likewise. |
| * flow.c (verify_wide_reg_1, mark_regs_live_at_end, |
| find_regno_partial, propagate_one_insn, init_propagate_block_info, |
| insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond, |
| attempt_auto_inc, find_auto_inc, mark_used_regs, |
| count_or_remove_death_notes_bb): Likewise. |
| * function.c (find_temp_slot_from_address, update_temp_slot_address, |
| preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn, |
| fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof, |
| put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk, |
| purge_single_hard_subreg_set, instantiate_decl, |
| instantiate_virtual_regs_1, aggregate_value_p, assign_parms, |
| promoted_input_arg, setjmp_vars_warning, setjmp_args_warning, |
| setjmp_protect, setjmp_protect_args, fix_lexical_addr, |
| expand_function_start, diddle_return_value, clobber_return_register, |
| expand_function_end, keep_stack_depressed, handle_epilogue_set, |
| update_epilogue_consts): Likewise. |
| * genemit.c (gen_exp, gen_insn): Likewise. |
| * genrecog.c (make_insn_sequence): Likewise. |
| * global.c (global_conflicts, expand_preferences, mark_reg_store, |
| mark_reg_conflicts, set_preference, reg_becomes_live, |
| build_insn_chain, mark_reg_change): Likewise. |
| * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight): |
| Likewise. |
| * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block): |
| Likewise. |
| * integrate.c (copy_rtx_and_substitute, try_constants, |
| subst_constants, mark_stores, allocate_initial_values): Likewise. |
| * jump.c (reversed_comparison_code_parts, delete_prior_computation, |
| delete_computation, rtx_renumbered_equal_p, true_regnum, |
| reg_or_subregno): Likewise. |
| * lcm.c (reg_dies, reg_becomes_live): Likewise. |
| * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem, |
| update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set, |
| wipe_dead_reg, no_conflict_p): Likewise. |
| * loop-iv.c (simple_reg_p, simple_set_p, kill_sets, |
| iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered, |
| simple_rhs_p, simplify_using_assignment, implies_p): Likewise. |
| * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p, |
| move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p, |
| find_single_use_in_loop, count_one_set, loop_bivs_init_find, |
| loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs, |
| valid_initial_value_p, simplify_giv_expr, consec_sets_giv, |
| loop_regs_update, check_dbra_loop, maybe_eliminate_biv, |
| maybe_eliminate_biv_1, record_initial, update_reg_last_use, |
| canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop, |
| try_swap_copy_prop): Likewise. |
| * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop, |
| expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float): |
| Likewise. |
| * postreload.c (reload_cse_simplify, reload_cse_simplify_set, |
| reload_cse_simplify_operands, reload_combine, |
| reload_combine_note_store, reload_combine_note_use, |
| reload_cse_move2add, move2add_note_store): Likewise. |
| * print-rtl.c (print_rtx): Likewise. |
| * ra-build.c (copy_insn_p, remember_move, init_one_web_common, |
| contains_pseudo, handle_asm_insn): Likewise. |
| * ra-debug.c (ra_print_rtx_object, dump_constraints, |
| dump_static_insn_cost): Likewise. |
| * ra-rewrite.c (slots_overlap_p, emit_colors, |
| remove_suspicious_death_notes): Likewise. |
| * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use, |
| register_operand, scratch_operand, nonmemory_operand, |
| constrain_operands): Likewise. |
| * reg-stack (check_asm_stack_operands, remove_regno_note, |
| emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat, |
| subst_asm_stack_regs): Likewise. |
| * regclass.c (scan_one_insn, record_reg_classes, copy_cost, |
| record_address_regs, reg_scan_mark_refs): Likewise. |
| * regmove.c (discover_flags_reg, replacement_quality, |
| copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize, |
| fixup_match_1): Likewise. |
| * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value, |
| kill_set_value, copyprop_hardreg_forward_1): Likewise. |
| * reload.c (MATCHES, push_secondary_reload, find_reusable_reload, |
| reload_inner_reg_of_subreg, can_reload_into, push_reload, |
| combine_reloads, find_dummy_reload, hard_reg_set_here_p, |
| operands_match_p, decompose, find_reloads, find_reloads_toplev, |
| find_reloads_address, subst_indexed_address, find_reloads_address_1, |
| find_reloads_subreg_address, find_replacement, |
| refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p, |
| refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise. |
| * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns, |
| find_reg, delete_dead_insn, alter_reg, eliminate_regs, |
| elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs, |
| forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs, |
| emit_input_reload_insns, emit_output_reload_insns, do_input_reload, |
| do_output_reload, emit_reload_insns, gen_reload, |
| delete_address_reloads_1, inc_for_reload): Likewise. |
| * reorg.c (update_reg_dead_notes, fix_reg_dead_note, |
| update_reg_unused_notes, fill_slots_from_thread): Likewise. |
| * resource.c (update_live_status, mark_referenced_resources, |
| mark_set_resources, mark_target_live_regs): Likewise. |
| * rtlanal.c (nonzero_address_p, get_jump_table_offset, |
| global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p, |
| reg_set_p, set_noop_p, find_last_value, refers_to_regno_p, |
| note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note, |
| find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in, |
| parms_set, find_first_parameter_load, keep_with_call_p, |
| hoist_test_store, hoist_update_store, address_cost, nonzero_bits1, |
| num_sign_bit_copies1): Likewise. |
| * rtlhooks.c (gen_lowpart_general): Likewise. |
| * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn, |
| sched_analyze): Likewise. |
| * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1): |
| Likewise. |
| * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise. |
| * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation, |
| simplify_binary_operation, simplify_const_relational_operation, |
| simplify_subreg): Likewise. |
| * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands, |
| expand_end_stmt_expr, expand_return, expand_decl, |
| expand_anon_union_decl): Likewise. |
| * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body, |
| find_splittable_regs, find_splittable_givs, find_common_reg_term, |
| loop_iterations): Likewise. |
| * var-tracking.c (variable_union, variable_part_different_p, |
| variable_different_p, count_uses, add_uses, add_stores, |
| compute_bb_dataflow, set_variable_part, delete_variable_part, |
| emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters): |
| Likewise. |
| * varasm.c (assemble_variable): Likewise. |
| |
| 2004-06-15 Chris Demetriou <cgd@broadcom.com> |
| |
| * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove |
| definition. |
| * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove |
| #undef and #if 0'd definition. |
| |
| 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * combine.c (distribute_notes): Comment typo fix. |
| |
| 2004-06-15 Roger Sayle <roger@eyesopen.com> |
| |
| * expmed.c (synth_mult): Mask bits of the multiplier to the |
| machine mode of the multiplication. Don't consider shifts |
| by more than (or equal to) the width of the operation's mode. |
| |
| 2004-06-15 Paolo Bonzini <bonzini@gnu.org> |
| |
| * doc/install.texi: Yet another update for autoconf |
| and automake versions. |
| |
| 2004-06-15 Paolo Bonzini <bonzini@gnu.org> |
| |
| * function.h (struct function): Remove cannot_inline field. |
| (current_function_cannot_inline): Remove. |
| * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT. |
| Simplify conditionals to ignore warn_return_type. |
| * tree-optimize.c (tree_rest_of_compilation): Do not reset |
| DECL_DEFER_OUTPUT. |
| * objc/objc-act.c (build_module_descriptor, finish_method_def): |
| Do not set current_function_cannot_inline. |
| |
| 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * cfglayout.c (fixup_reorder_chain): Handle case where the |
| destination of E_TAKEN is EXIT_BLOCK_PTR. |
| |
| 2004-06-15 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo. |
| |
| 2004-06-15 Paolo Bonzini <bonzini@gnu.org> |
| |
| * fold-const.c (operand_equal_p): Update comment. |
| |
| 2004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> |
| |
| * config/m32r/m32r.h (RETURN_ADDR_RTX): Define. |
| (INCOMING_RETURN_ADDR_RTX): Define. |
| * config/m32r/m32r-protos.h (m32r_return_addr): Added. |
| * config/m32r/m32r.c (m32r_exppand_prologue): Changed for |
| __builtin_return_address(0). |
| (m32r_return_addr): Added for __builtin_return_address(0). |
| (m32r_reload_lr): Ditto. |
| |
| * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. |
| |
| 2004-06-15 Paolo Bonzini <bonzini@gnu.org> |
| |
| * doc/install.texi (Prerequisites): Update libbanshee, |
| fastjar, libcpp, libjava/libltdl entries to |
| automake 1.8.5. |
| |
| 2004-06-15 Eric Botcazou <ebotcazou@act-europe.fr> |
| Olivier Hainque <hainque@act-europe.fr> |
| |
| * function.c (fixup_var_refs): Also adjust the start of sequence |
| after fixing up the insns. |
| |
| 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org> |
| |
| * gccbug.in: Update optimization -> tree-optimization/rtl-optimization. |
| |
| 2004-06-14 Benjamin Kosnik <bkoz@redhat.com> |
| |
| * doc/install.texi (Prerequisites): Update libstdc++ entry to |
| automake 1.8.5. |
| |
| 2004-06-14 Eric Christopher <echristo@redhat.com> |
| |
| * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf) |
| to -mtpf-trace (-mno-tpf-trace). |
| * doc/invoke.texi (S/390 and zSeries Options): Add tpf option |
| documentation. |
| |
| 2004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * real.c: Fix bit count in head comment. |
| |
| 2004-06-14 Jeff Law <law@redhat.com> |
| |
| * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle |
| PHIs where the destination or an argument is marked with |
| SSA_NAME_OCCURS_IN_ABNORMAL_PHI. |
| |
| 2004-06-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/15945 |
| * simplify-rtx.c (simplify_binary_operation): Don't optimize out |
| Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math. |
| |
| 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * opts.sh (var_args): Fix regexp. |
| |
| 2004-06-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/15178 |
| * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. |
| |
| 2004-06-14 Paul Brook <paul@codesourcery.com> |
| |
| * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries. |
| |
| 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * Makefile.in (FLAGS_H): New. |
| (flags.h): Replace by FLAGS_H. |
| * c.opt: Document Var, VarExists, Init and Report attributes. |
| * common.opt: Fill the values of the attributes. |
| * diagnostic.c (flag_fatal_errors): Do not define. |
| * except.c (flag_non_call_exceptions): Do not define. |
| * flags.h: Include options.h. Remove declarations conflicting with |
| the automatically defined ones. |
| * opts.c: Remove automatically defined variables. |
| (handle_option): Perform default initialization. |
| (common_handle_option): Do not handle options covered by the |
| default initialization. |
| * opts.h (struct cl_option): Add flag_var, has_set_value and set_value |
| fields. |
| (CL_REPORT): New. |
| * opts.sh: Generate variable declarations, handle CL_REPORT. |
| * toplev.c: Remove automatically defined variables. |
| (f_options): Removed. |
| (print_switch_values): Use cl_options instead of f_options. |
| * toplev.h (version_flag): Declaration removed. |
| |
| 2004-06-14 Ian Lance Taylor <ian@wasabisystems.com> |
| |
| * config/sparc/sparc.h: Correct comment about availability of |
| little endian option. |
| |
| * config.gcc: Remove sparc64-*-aout*. |
| * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove. |
| * config/sparc/sp64-aout.h: Remove. |
| * config/sparc/aout.h: Remove. |
| |
| 2004-06-14 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/s390/s390.c: Include "tree-gimple.h". |
| (s390_gimplify_va_arg): New function. |
| (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. |
| (s390_va_arg): Remove. |
| * config/s390/s390-protos.h (s390_va_arg): Remove. |
| * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort (). |
| |
| 2004-06-14 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * basic-block.h (could_fall_through): Declare. |
| * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR. |
| Fail if the source already has a fallthrough edge to the exit |
| block pointer. |
| (could_fall_through): New function. |
| * cfgbuild.c (make_edges): Check if we already have a fallthrough |
| edge to the exit block pointer. |
| * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is |
| not called before reload has completed. |
| Handle special case of first block having a fall-through exit edge. |
| (cfg_layout_finalize): Don't call it before reload or if we have |
| rtl epilogues. |
| (fixup_reorder_chain): A fall through to the exit block does not |
| require the block to come last. Add sanity checks. |
| * cfgrtl.c (rtl_split_edge): Add special handling of fall through |
| edges to the exit block. |
| * function.c (cfglayout.h): #include. |
| (thread_prologue_and_epilogue_insns): If we have neither return nor |
| epilogue, but a fall through to the exit block from mid-function, |
| force a non-fall-through exit. |
| * Makefile.in (function.o): Depend on CFGLAYOUT_H. |
| |
| 2004-06-14 Alan Modra <amodra@bigpond.net.au> |
| |
| * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu |
| for power5 and rs64a. Correct condition for default. Correct power3, |
| 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many. |
| |
| 2004-06-13 Steven Bosscher <stevenb@suse.de> |
| |
| * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set): |
| Revert previous change, don't use CALL_P. |
| |
| 2004-06-13 Jason Merrill <jason@redhat.com> |
| |
| * tree.h: Move std_gimplify_va_arg_expr protoype here. |
| * tree-gimple.h: From here. |
| |
| 2004-06-13 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/15979 |
| Fix PR tree-optimization/15981 |
| * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't |
| try to insert values undefined along some path. |
| |
| 2004-06-13 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things |
| are available everywhere too. |
| |
| 2004-06-13 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * fold-const.c (fold_checksum_tree <case 't'>): Only |
| look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE. |
| Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if |
| EXPR is an INTEGERAL_TYPE or a scalar float type. |
| |
| 2004-06-13 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-sra.c (tree_sra): Update documentation. |
| |
| 2004-06-13 Joseph S. Myers <jsm@polyomino.org.uk> |
| |
| * c-typeck.c (comptypes, tagged_types_tu_compatible_p, |
| function_types_compatible_p, type_lists_compatible_p): Remove |
| flags parameter. |
| * c-tree.h (comptypes): Likewise. |
| (COMPARE_STRICT): Remove. |
| * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All |
| callers changed. |
| |
| 2004-06-13 Eric Christopher <echristo@redhat.com> |
| |
| * c-decl.c (diagnose_mismatched_decls): Improve error message. |
| Remove unused code. |
| * c-typeck.c (comptypes): Add location in standard we're checking. |
| |
| 2004-06-13 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with |
| version 3.3.4. |
| |
| 2004-06-12 Roger Sayle <roger@eyesopen.com> |
| |
| * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally |
| index by machine mode. |
| (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost |
| tables inside the loop over machine modes. |
| (synth_mult, expand_mult_highpart_optab, expand_mult_highpart, |
| expand_divmod): Index shift*_cost by the appropriate machine mode. |
| |
| 2004-06-12 Eric Christopher <echristo@redhat.com> |
| |
| * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING. |
| * config/s390/s390.md: Ditto. |
| * config/s390/s390.c: Ditto. |
| (s390_frame_info): Conditionalize frame and setup info on |
| TARGET_TPF_PROFILING. |
| (s390_arg_frame_offset): Ditto. |
| |
| 2004-06-12 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (omit_two_operands): New function. |
| * tree.h (omit_two_operands): Prototype here. |
| * builtins.c (fold_builtin_unordered_cmp): New function to lower |
| C99 unordered comparison builtins to the appropriate tree nodes. |
| (fold_builtin_1): Use fold_builtin_unordered_cmp to lower |
| BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, |
| BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower |
| BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node. |
| (simplify_builtin_memcmp, simplify_builtin_strncmp, |
| simplify_builtin_strncat, simplify_builtin_strspn): Use the new |
| omit_two_operands function to build the required COMPOUND_EXPRs. |
| |
| 2004-06-12 Steven Bosscher <stevenb@suse.de>, |
| Andreas Jaeger <aj@suse.de> |
| |
| * gcse.c (record_set_info): Use predicates like REG_P. |
| (mems_conflict_for_gcse_p): Likewise. |
| (load_killed_in_block_p): Likewise. |
| (hash_expr_1): Likewise. |
| (insert_set_in_table): Likewise. |
| (gcse_constant_p): Likewise. |
| (hash_scan_set): Likewise. |
| (hash_scan_insn): Likewise. |
| (canon_list_insert): Likewise. |
| (record_last_mem_set_info): Likewise. |
| (record_last_set_info): Likewise. |
| (compute_hash_table_work): Likewise. |
| (mark_set): Likewise. |
| (mark_clobber): Likewise. |
| (mark_oprs_set): Likewise. |
| (compute_transp): Likewise. |
| (find_avail_set): Likewise. |
| (cprop_insn): Likewise. |
| (do_local_cprop): Likewise. |
| (cprop): Likewise. |
| (find_implicit_sets): Likewise. |
| (find_bypass_set): Likewise. |
| (bypass_conditional_jumps): Likewise. |
| (insert_insn_end_bb): Likewise. |
| (pre_insert_copy_insn): Likewise. |
| (compute_transpout): Likewise. |
| (next_ls_expr): Likewise. |
| (invalidate_any_buried_refs): Likewise. |
| (compute_ld_motion_mems): Likewise. |
| (reg_set_info): Likewise. |
| (reg_clear_last_set): Likewise. |
| (find_moveable_store): Likewise. |
| (compute_store_table): Likewise. |
| (find_loads): Likewise. |
| (store_killed_in_insn): Likewise. |
| (insert_insn_start_bb): Likewise. |
| (reg_set_between_after_reload_p): Likewise. |
| (reg_used_between_after_reload_p): Likewise. |
| (is_jump_table_basic_block): Likewise. |
| (gcse_after_reload): Likewise. |
| (hash_scan_set_after_reload): Likewise. |
| (compute_hash_table_after_reload): Likewise. |
| |
| 2004-06-12 Steven Bosscher <stevenb@suse.de> |
| |
| * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates. |
| (INSN_P): Don't look at the rtx code class, just explicitly |
| check for one of the tree RTX_INSN codes. |
| |
| 2004-06-11 Zack Weinberg <zack@codesourcery.com> |
| |
| * c-typeck.c (default_function_array_conversion): Use |
| build_pointer_type not TYPE_POINTER_TO. |
| |
| 2004-06-11 Zack Weinberg <zack@codesourcery.com> |
| |
| * configure.ac: Don't invoke ACX_HEADER_STDBOOL. |
| * configure, config.in: Regenerate. |
| * system.h: Unconditionally define bool as unsigned char, |
| BOOL_BITFIELD as unsigned int. |
| * domwalk.h: Use BOOL_BITFIELD. |
| |
| 2004-06-12 Andreas Jaeger <aj@suse.de> |
| |
| * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4. |
| * libgcc-darwin.ver: Likewise. |
| |
| 2004-06-12 Peter Jakubek <peter@laseranimation.com> |
| |
| * reload.c (find_reloads): Force reload for pseudo registers on big |
| endian machines. |
| |
| 2004-06-11 Steven Bosscher <stevenb@suse.de> |
| |
| * tree-ssa-dce.c (mark_control_dependent_edges_necessary): |
| Don't try to mark anything control dependent on the entry or |
| exit blocks. |
| |
| 2004-06-11 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix Bug 15899 |
| Fix Bug 15460 |
| * tree.h (SSA_NAME_VALUE): New macro. |
| (struct tree_ssa_name): Add value_handle member. |
| * tree-ssa-pre.c: Replaced. |
| * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN. |
| (struct cst_ann_d): New. |
| (struct expr_ann_d): New. |
| (union tree_ann_d): Add cst_ann, expr_ann. |
| * tree-dfa.c (create_cst_ann): New function. |
| (create_expr_ann): Ditto. |
| * tree-flow-inline.h (cst_ann): New function. |
| (expr_ann): Ditto. |
| (get_cst_ann): Ditto. |
| (get_expr_ann): Ditto.. |
| |
| 2004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * pa.c (pa_hpux_init_libfunc): Add support for unord_optab. |
| * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to |
| _U_Qfcmp library function. |
| (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq, |
| _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions. |
| |
| * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify |
| unspec used for loading address from DLT. |
| * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE. |
| Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants. |
| Don't use short code sequence when loading the address of a nonlocal |
| label. |
| (nonlocal_goto): New expander. |
| (indirect_goto): New jump pattern for nonlocal gotos. |
| (short_jump): Remove extra whitespace. |
| (builtin_longjmp): Clobber memory and hard frame pointer. Restore |
| frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto |
| pattern. |
| |
| 2004-06-11 Roger Sayle <roger@eyesopen.com> |
| |
| * expmed.c (synth_mult): Add an additional MODE argument for the |
| machine mode of the multiplication. Update recursive calls. Use |
| mode instead of word_mode for determining operation costs. |
| (choose_mult_variant): Update calls to synth_mult with "mode". |
| |
| 2004-06-11 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads |
| and makes_aliased_stores. |
| |
| 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * doc/install.text (--enable-shared): Fix typo. |
| |
| 2004-06-11 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p |
| argument. Use internal post for call to gimplify_expr. Tidy |
| rounded type size computation. |
| (alpha_gimplify_va_arg): Use get_formal_tmp_var and |
| get_initialized_tmp_var. |
| |
| 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * doc/install.texi (--enable-shared): Update libobjc's shared library |
| status. Remove reference to libf2c. |
| |
| 2004-06-11 Jason Merrill <jason@redhat.com> |
| |
| * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort. |
| * config/i386/i386.c (ix86_va_arg): Remove. |
| * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort. |
| * config/rs6000/rs6000.c (rs6000_va_arg): Remove. |
| * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort. |
| * config/alpha/alpha.c (alpha_va_arg): Remove. |
| * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort. |
| * config/sparc/sparc.c (sparc_va_arg): Remove. |
| |
| * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the |
| assignment might throw. |
| * tree-eh.c (tree_could_throw_p): Support non-call exceptions in |
| expressions. |
| |
| 2004-06-11 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| PR 15886: |
| * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx. |
| |
| 2004-06-11 Joseph S. Myers <jsm@polyomino.org.uk> |
| |
| * doc/install.texi (Prerequisites): Update documentation of |
| required versions of autoconf and automake. Remove mention of |
| libf2c. |
| |
| 2004-06-11 Jason Merrill <jason@redhat.com> |
| |
| * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn. |
| (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. |
| |
| 2004-06-11 Jerry Quinn <jlquinn@optonline.net> |
| |
| * typeclass.h: Add GPL plus exception license. Add include |
| guard. |
| |
| 2004-06-10 Jason Merrill <jason@redhat.com> |
| |
| * gimplify.c (gimplify_modify_expr): Don't force a temporary |
| of an aggregate_value_p type. |
| |
| 2004-06-10 Jeff Law <law@redhat.com> |
| |
| * fold-const.c (fold_inf_compare): Avoid creating non-gimple |
| code when we are in gimple form. |
| |
| 2004-06-10 Diego Novillo <dnovillo@redhat.com> |
| |
| * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H. |
| * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare. |
| (highest_ssa_version): Remove. |
| * tree-outof-ssa.c (new_temp_expr_table): Replace |
| highest_ssa_version with num_ssa_names. |
| (dump_replaceable_exprs): Likewise. |
| (rewrite_vars_out_of_ssa): Likewise. |
| * tree-ssa-ccp.c (initialize): Likewise |
| * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. |
| * tree-ssa-dce.c (tree_dce_init): Likewise. |
| * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. |
| * tree-ssa-live.c (create_ssa_var_map): Likewise. |
| (dump_var_map): Likewise. |
| * tree-ssa.c (verify_ssa): Likewise. |
| (kill_redundant_phi_nodes): Likewise. |
| Do not build a local array of SSA_NAMEs. Use the ssa_names table. |
| * tree-ssanames.c: Include tree-flow.h |
| (ssa_names): New varray. |
| (init_ssa_names): Initialize ssa_names. |
| Reserve the first slot of the ssa_names table. |
| (make_ssa_name): Push the newly created SSA_NAME into ssa_names. |
| Assign version numbers using num_ssa_names. |
| |
| 2004-06-10 Joseph S. Myers <jsm@polyomino.org.uk> |
| |
| * doc/sourcebuild.texi (Front End): Add details of more |
| installation documentation required. |
| |
| 2004-06-10 Brian Booth <bbooth@redhat.com> |
| |
| * doc/tree-ssa.texi: Remove references to VDEF and add descriptions |
| of V_MAY_DEF and V_MUST_DEF. |
| * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename |
| num_vdefs to num_v_may_defs. |
| (compute_immediate_uses_for_stmt): Rename occurences of vdef |
| to v_may_def. |
| (redirect_immediate_uses): Ditto. |
| (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs. |
| (collect_dfa_stats_r): Rename occurences of vdef to v_may_def. |
| Also add code to sum up the number of v_must_defs. |
| (vdefs_disappeared_p): Replace with... |
| (v_may_defs_disappeared_p): This. |
| (v_must_defs_disappeared_p): New function. |
| (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def. |
| Also add code to mark new variables found in V_MUST_DEFs for |
| renameing. |
| * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace |
| vdef_ops to v_may_def_ops. |
| (get_vdef_ops): Replace with... |
| (get_v_may_def_ops): This. |
| * tree-flow-inline.h (get_vdef_ops): Replace with... |
| (get_v_may_def_ops): This. |
| (get_v_must_def_ops): New function. |
| (get_vdef_result_ptr): Replace with... |
| (get_v_may_def_result_ptr): This. |
| (get_vdef_op_ptr): Ditto with... |
| (get_v_may_def_op_ptr); This. |
| (get_v_must_def_op_ptr): New function. |
| * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef |
| to v_may_def. Also add code to mark statements with |
| V_MUST_DEFs as definition sites. |
| (rewrite_stmt): Rename occurences of vdef to v_may_def. Also |
| add code to register new V_MUST_DEFs made by the statement. |
| * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments. |
| (check_replaceable): Rename occurences of vdef to v_may_def. Also |
| add check for V_MUST_DEFs. |
| (find_replaceable_in_bb): Ditto. |
| * tree-pretty-print.c (dump_vops): Rename occurences of vdef |
| to v_may_def. Also add code to dump V_MUST_DEFs. |
| * tree-sra.c (mark_all_vdefs): Replace with... |
| (mark_all_v_may_defs): This. |
| (mark_all_v_must_defs): New function. |
| (create_scalar_copies): Replace call to mark_all_vdefs with |
| calls to mark_all_v_may_defs and mark_all_v_must_defs. |
| (scalarize_structures): Rename occurences of vdef to v_may_def. |
| Also add a check for V_MUST_DEFs. |
| (scalarize_modify_expr): Rename occurences of vdef to v_may_def. |
| * tree-ssa-alias.c (global_var): Update comment. |
| (compute_may_aliases): Ditto. |
| (compute_points_to_and_addr_escape): Rename occurences of vdef |
| to v_may_def. Also add code to mark variables in V_MUST_DEF |
| operands as being written to. |
| (group_aliases): Update comment. |
| (maybe_create_global_var): Ditto. |
| * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def. |
| Also add a check for V_MUST_DEFs on GIMPLE registers. |
| (replace_immediate_uses): Rename occurences of vdef to v_may_def. |
| * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef |
| to v_may_def. Also add code to mark all V_MUST_DEF operands |
| VARYING. |
| (initialize): Ditto. |
| (set_rhs): Rename occurences of vdef to v_may_def. Also add |
| code to update SSA_NAMEs in V_MUST_DEFs. |
| * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef |
| to v_may_def. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename |
| occurences of vdef to v_may_def. Also add code to mark statements |
| with V_MUST_DEFs as necessary. |
| (propagate_necessity): Rename occurences of vdef to v_may_def. |
| * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename |
| occurences of vdef to v_may_def. Also add code to mark operands |
| in V_MUST_DEFs for renaming. |
| (eliminate_redundant_computations): Rename occurences of vdef |
| to v_may_def. |
| (record_equivalences_from_stmt): Rename occurences of vdef |
| to v_may_def. Also add code to record VUSEs for V_MUST_DEFs. |
| (optimize_stmt): Remove unnesessary variable vdefs. Update |
| comment. |
| (register_definitions_for_stmt): Rename occurences of vdef |
| to v_may_def. Also add code to register definitions made with |
| V_MUST_DEFs. |
| * tree-ssa-dse.c (fix_stmt_vdefs): Replace with... |
| (fix_stmt_v_may_defs): This. |
| (fix_phi_uses): Rename occurences of vdef to v_may_def. |
| (dse_optimize_stmt): Ditto. |
| * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef |
| to v_may_def. Also add code to mark V_MUST_DEF operands as being |
| used in virtual operators. |
| * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of |
| vdef to v_may_def. Also add code to mark V_MUST_DEF operands for |
| renaming. |
| * tree-ssa-operands.c (opf_kill_def): New flag for killing |
| definitions. |
| (build_vdefs): Renamed to... |
| (build_v_may_defs): This. |
| (build_v_must_defs): New variable. |
| (voperands_d): Add v_must_def_ops and replace vdef_ops with |
| v_may_def_ops. |
| (append_vdef): Replace with... |
| (append_v_may_def): This. |
| (append_v_must_def): New function. |
| (NUM_FREE): Increment for V_MUST_DEF |
| (optype_freelist): Increment its size for V_MUST_DEF |
| (allocate_vdef_optype): Replace with... |
| (allocate_v_may_def_optype): This. |
| (allocate_v_must_def_optype): New function. |
| (free_vdefs): Replace with... |
| (free_v_may_defs): This. |
| (free_v_must_defs): New function. |
| (remove_vdefs): Replace with... |
| (remove_v_may_defs): This. |
| (remove_v_must_defs): New function. |
| (init_ssa_operands): Rename occurences of vdef to v_may_def. Also |
| add code to initialize build_v_must_defs. |
| (finalize_ssa_vdefs): Replace with... |
| (finalize_ssa_v_may_defs): This. |
| (finalize_ssa_vuses): Rename occurences of vdef to v_may_def. |
| (finalize_ssa_v_must_defs): New function. |
| (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs |
| with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs. |
| (verify_start_operands): Rename occurences of vdef to v_may_def. |
| Also add check for build_v_must_defs. |
| (get_stmt_operands): Rename occurences of vdef to v_may_def. |
| Also add code to handle V_MUST_DEFs and to use opf_kill_def for |
| killing definitions. |
| (get_expr_operands): Update comment and use opf_kill_def for |
| killing definitions. |
| (add_stmt_operand): Replace code that appends VDEFs with code |
| that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs |
| otherwise. |
| (add_call_clobber_ops): Update comments. |
| * tree-ssa-operands.h (vdef_optype_d): Replace with... |
| (v_may_def_optype_d): This. |
| (v_must_def_optype_d): New structure. |
| (VDEF_OPS): Replace with... |
| (V_MAY_DEF_OPS): This. |
| (STMT_VDEF_OPS): Same with... |
| (STMT_V_MAY_DEF_OPS): This. |
| (NUM_VDEFS): And... |
| (NUM_V_MAY_DEFS): This. |
| (VDEF_RESULT_PTR): As well as... |
| (V_MAY_DEF_RESULT_PTR): This. |
| (VDEF_RESULT): Same goes for... |
| (V_MAY_DEF_RESULT): This. |
| (VDEF_OP_PTR): And... |
| (V_MAY_DEF_OP_PTR): This. |
| (VDEF_OP): And... |
| (V_MAY_DEF_OP): This. |
| (V_MUST_DEF_OPS): New macro. |
| (STMT_V_MUST_DEF_OPS): Ditto. |
| (NUM_V_MUST_DEFS): Ditto. |
| (V_MUST_DEF_OP_PTR): Ditto. |
| (V_MUST_DEF_OP): Ditto. |
| (remove_vdefs): Replace signature with... |
| (remove_v_may_defs): This. |
| (remove_v_must_defs): New function signature. |
| * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs |
| with calls to remove_v_may_defs and remove_v_must_defs. |
| (process_left_occs_and_kills): Rename occurences of vdef to v_may_def. |
| Also add code that marks left occurences of operands in V_MUST_DEFs. |
| * tree-tailcall.c (find_tail_calls): Rename occurences of vdef |
| to v_may_def. Also add check for V_MUST_DEFs. |
| (eliminate_tail_call):Rename occurences of vdef to v_may_def. |
| |
| 2004-06-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/15653 |
| * haifa-sched.c (schedule_block): Finish cycle after issuing asm |
| insn. |
| |
| 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de> |
| |
| PR web/15263 |
| * doc/install.texi: Remove superfluous linebreak. |
| |
| 2004-06-10 Roger Sayle <roger@eyesopen.com> |
| |
| * builtins.c (expand_builtin): Fall back to library function call for |
| conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl. |
| (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR, |
| BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to |
| IMAGPART_EXPR respectively. |
| |
| 2004-06-10 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * sh.c (dump_table): New argument start. Changed caller. |
| (fixup_mova): New function. |
| (find_barrier): Use it. |
| (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2. |
| If the label a mova refers to is above the mova itself, change |
| the mova into a load. |
| * sh.md (*casesi_worker): Rename to: |
| (casesi_worker_1). |
| (casesi_worker_2): New insn. |
| |
| 2004-06-10 Jason Merrill <jason@redhat.com> |
| |
| * target.h (struct gcc_target): Change gimplify_va_arg_expr |
| hook signature. |
| * tree-gimple.h: Adjust. |
| * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust. |
| * config/i386/i386.c (ix86_gimplify_va_arg): Adjust. |
| Use fold_convert. |
| * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust. |
| * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust. |
| Use COMPLEX_EXPR for complex numbers. Use fold_convert. |
| * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert. |
| (gimplify_va_arg_expr): Return GS_ERROR in error case. |
| Gimplify valist rather than calling stabilize_va_list. |
| |
| 2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * Makefile.in (df.o): Remove fibheap dependency. |
| * df.h: Do not include sbitmap.h. |
| (struct ref): New field "data". |
| (DF_REF_DATA): New accessor macro. |
| (struct df): Field "dom" removed. |
| (df_analyze_subcfg): New function. |
| (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ... |
| (transfer_function): ... new type. |
| (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ... |
| (iterative_dataflow): ... new function. |
| (enum set_representation, struct dataflow): New. |
| * df.c: Do not include fibheap.h. |
| |
| (df_reg_def_chain_clean, df_reg_use_chain_clean, |
| (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain, |
| prune_to_subcfg, df_bb_modify): New functions. |
| (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create, |
| df_refs_update, df_reg_table_realloc, df_ref_create, |
| df_bb_reg_def_chain_create, df_bb_reg_use_chain_create, |
| df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute, |
| df_analyse_1, df_insn_modify): Support analysing only a part of the cfg. |
| |
| (dataflow_set_a_op_b, dataflow_set_copy): New functions. |
| (df_rd_transfer_function, df_ru_transfer_function, |
| df_lr_transfer_function): Type of bitmaps changed to void *. |
| (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ... |
| (hybrid_search): ... new function. |
| (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ... |
| (iterative_dataflow): ... new function. Avoid use of fibheaps for |
| a worklist. Do not process basic blocks unnecessarily. |
| |
| 2004-06-10 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (fold_abs_const): Make extern. |
| * tree.h (fold_abs_const): Prototype here. |
| * builtins.c (fold_builtin_fabs): New function to transform |
| fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes. |
| (fold_builtin_abs): New function to transform abs, labs, llabs |
| and imaxabs builtins into ABS_EXPR tree nodes. |
| (expand_builtin): Fall back to a function call for abs, labs, |
| llabs and imaxabs builtins that survive constant folding. |
| (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and |
| FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS. |
| |
| 2004-06-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a |
| leaf function without unwind info at RP 0. |
| |
| 2004-06-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/14791 |
| * tree.h (enum tree_index): Add TI_FILEPTR_TYPE. |
| (fileptr_type_node): Define. |
| * tree.c (build_common_tree_nodes_2): Initialize |
| fileptr_type_node to ptr_type_node. |
| * c-common.c (c_common_nodes_and_builtins): For C++, make |
| fileptr_type_node a distinct type copy. |
| * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR, |
| BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, |
| BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, |
| BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add. |
| (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR, |
| BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR, |
| BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove. |
| * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED, |
| BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS, |
| BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE, |
| BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use |
| the above *FILEPTR* types instead of *PTR*. |
| |
| 2004-06-09 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores |
| match. |
| |
| 2004-06-09 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (fold_not_const): New function. |
| (fold) <ABS_EXPR>: Don't bother testing wins. |
| (fold) <BIT_NOT_EXPR>: Call fold_not_const. |
| (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise. |
| |
| 2004-06-09 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/15228 |
| * function.c (assign_parms): Always set_mem_align with the computed |
| FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT. |
| |
| 2004-06-09 Richard Henderson <rth@redhat.com> |
| |
| PR opt/15108 |
| * tree-tailcall.c (find_tail_calls): Don't check early for |
| tail_recursion failure. |
| |
| 2004-06-09 Diego Novillo <dnovillo@redhat.com> |
| |
| Move SSA_NAME annotations into tree_ssa_name. |
| |
| * tree-dfa.c (create_ssa_name_ann): Remove. |
| * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove. |
| * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN. |
| (struct ssa_name_ann_d): Remove. |
| (union tree_ann_d): Update. |
| (ssa_name_ann_t): Remove. |
| * tree-ssa-alias.c: (get_ptr_info): New local function. |
| Replace references to ssa_name_ann_t with struct ptr_info_def. |
| * tree-ssa-operands.c (get_expr_operands): Likewise. |
| * tree.h (SSA_NAME_PTR_INFO): Define. |
| (struct ptr_info_def): Declare. |
| (struct tree_ssa_name): Add field 'ptr_info'. |
| |
| 2004-06-09 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| * config/i386/winnt.c (i386_pe_output_labelref): Correct |
| misplaced ')'. |
| |
| 2004-06-09 Steven Bosscher <stevenb@suse.de> |
| |
| * config/i386/k6.md: Rewrite using the DFA model. |
| * config/i386/i386.c (ix86_adjust_cost): Don't increase the |
| cost of load-operation insns for the K6. |
| (ia32_use_dfa_pipeline_interface): Add TARGET_K6. |
| (ia32_multipass_dfa_lookahead): Likewise. |
| |
| 2004-06-09 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (alpha_gimplify_va_arg_1, |
| alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New. |
| |
| 2004-06-09 Richard Henderson <rth@redhat.com> |
| |
| * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE. |
| |
| 2004-06-09 Geoffrey Keating <geoffk@apple.com> |
| |
| * Makefile.in (CPPLIB_H): Put files in order of inclusion. |
| (CPP_ID_DATA_H): New. |
| (gtype-desc.o): Update dependencies. |
| (GTFILES): Use CPP_ID_DATA_H. |
| |
| 2004-06-09 Mark Mitchell <mark@codesourcery.com> |
| |
| Revert: |
| PR c++/15815 |
| 2004-06-07 Mark Mitchell <mark@codesourcery.com> |
| * doc/extend.texi: Deprecate #pragma interface and #pragma |
| implementation. |
| |
| 2004-06-09 David S. Miller <davem@nuts.davemloft.net> |
| |
| * config/sparc/sparc.h (MOVE_RATIO): New definition. |
| |
| 2004-06-09 Richard Henderson <rth@redhat.com> |
| |
| * basic-block.h (struct edge_def): Add goto_locus. |
| * tree-cfg.c (make_goto_expr_edges): Set it. |
| (disband_implicit_edges): Use it. |
| * tree-pretty-print.c (dump_implicit_edges): Print it. |
| |
| 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com> |
| |
| * h8300.md (ldm_h8300s_4): Fix condition for expander. |
| |
| 2004-06-08 Jason Merrill <jason@redhat.com> |
| |
| Gimplify VA_ARG_EXPR into simpler forms. |
| * target.h: Add gimplify_va_arg_expr hook. |
| * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR. |
| * fold-const.c (build_fold_addr_expr) |
| (build_fold_addr_expr_with_type): Move from gimplify.c. |
| * tree.h: Declare them. |
| * gimplify.c (gimplify_and_add): New fn. |
| (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c. |
| (gimplify_array_ref_to_plus, gimplify_modify_expr) |
| (gimplify_expr): Use build_fold_*. |
| (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we |
| don't know how to gimplify it. |
| * builtins.c (std_gimplify_va_arg_expr): New fn. |
| (dummy_object): New static fn. |
| (gimplify_va_arg_expr): New fn. |
| (stabilize_va_list): Use build_fold_*. |
| * tree-gimple.h: Declare new fns. |
| * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. |
| (ix86_gimplify_va_arg): New fn. |
| * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. |
| (ia64_gimplify_va_arg): New fn. |
| * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn. |
| (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. |
| * alias.c (get_varargs_alias_set): Just return 0 for now. |
| |
| * c-objc-common.c (c_tree_printer): Improve handling of %T. |
| |
| 2004-06-09 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * tree-complex.c (expand_complex_comparison): Use fold_convert instead |
| of convert. |
| * tree-inline.c (setup_one_parameter): Likewise. |
| * tree-sra.c (csc_build_component_ref): Likewise. |
| * tree-ssa-ccp.c (ccp_fold): Likewise. |
| * tree-ssa-copy.c (cprop_operand): Likewise. |
| * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. |
| * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. |
| |
| 2004-06-09 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| PR rtl-optimization/15521: |
| * sched-int.h (in_post_call_group_p): Change type to enum. |
| * sched-deps.c (sched_analyze_insn): |
| (sched_analyze): When in_post_call_group_p is post_call_initial, |
| don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE, |
| and also reset in_post_call_group_p to post_call. |
| (sched_analyze): When the previous basic block ended in a CALL_INSN, |
| initialize in_post_call_group_p as post_call_initial. |
| (init_deps): initialize in_post_call_group_p to not_post_call. |
| |
| 2004-06-09 Arnaud Charlet <charlet@act-europe.fr> |
| |
| PR ada/6637 |
| * doc/install.texi: List ada, libada as options to --enable-shared |
| |
| 2004-06-09 Paolo Bonzini <bonzini@gnu.org> |
| |
| * aclocal.m4 (gcc_AC_PROG_LN): Remove. |
| (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate |
| config.in entries. |
| * configure.ac: Call ACX_PROG_LN, falling back to $LN_S |
| if hard links are not available. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| 2004-06-08 Per Bothner <per@bothner.com> |
| |
| * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION. |
| |
| 2004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts. |
| Correct formatting. |
| |
| 2004-06-08 James E Wilson <wilson@specifixinc.com> |
| |
| PR target/15790 |
| * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define. |
| |
| 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * fold-const.c (fold_convert): Treat OFFSET_TYPE like |
| POINTER_TYPE and INTEGER_TYPE. |
| |
| 2004-06-08 Bernardo Innocenti <bernie@develer.com> |
| |
| * modulo-sched.c: Compile only when INSN_SCHEDULING is |
| defined. |
| |
| 2004-06-08 Jeff Law <law@redhat.com> |
| |
| * doc/contrib.texi: Add entries for Stefan Olsson and |
| Ola Ronnerup. |
| |
| 2004-06-08 DJ Delorie <dj@redhat.com> |
| |
| * toplev.c (floor_log2_wide): Replace loop with faster bit |
| operations. |
| (exact_log2_wide): Define in terms of the above. |
| * toplev.h (floor_log2): Use _builtin_clz family of builtins if |
| available. |
| |
| 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * config/rs6000/rs6000.c (print_operand, <case 'z'>): |
| Make sure that we are in INDIRECT mode when getting the |
| stub name. |
| |
| 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com> |
| |
| * h8300.md (extendqisi2_h8300): Add constraints. |
| (ldm_h8300s_4_normal): Fix typo. |
| |
| 2004-06-08 Richard Henderson <rth@redhat.com> |
| |
| * gimple-low.c (struct lower_data): Replace the_return_label and |
| one_return_stmt with return_statements. |
| (lower_function_body): Process the entire list of return_statements. |
| (lower_return_expr): Check source value before unifying return_exprs. |
| * gimplify.c (gimplify_return_expr): Force the use of a temporary |
| for !aggregate_value_p. |
| * tree-gimple.c: Update RETURN_EXPR grammer. |
| |
| 2004-06-08 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/15598 |
| * config/ia64/ia64.c (bundling): Add missed TYPE_A. |
| |
| 2004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| PR rtl-optimization/15717 |
| * config/i386/i386.c (legitimate_constant_p): Do not allow |
| x - symbol_ref. |
| |
| 2004-06-08 Alexandre Oliva <aoliva@redhat.com> |
| |
| * gimplify.c (copy_if_shared_r): Revert: |
| 2004-05-21 Richard Henderson <rth@redhat.com> |
| * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here. |
| |
| 2004-06-07 Roger Sayle <roger@eyesopen.com> |
| |
| * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap): |
| Make arrays indexed by machine mode. Rename negate_cost to neg_cost. |
| (init_expmed): Initialize these cost arrays as appropriate. |
| (store_bit_field, extract_bit_field): Correct whitespace. |
| (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart, |
| expand_mult_highpart_optab, expand_divmod): Update uses of add_cost, |
| neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode, |
| word_mode or compute_mode as appropriate. |
| |
| 2004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR target/15783 |
| * config/sparc/sparc.c (function_arg_union_value): Add 'mode' |
| parameter. Enumerate the registers inside the PARALLEL. |
| (function_arg): Adjust call to function_arg_union_value. |
| (function_value): Likewise. |
| |
| * config/sparc/sparc.c (sparc_function_epilogue): Properly format. |
| |
| 2004-06-07 Roger Sayle <roger@eyesopen.com> |
| |
| * real.c (real_copysign): New function to implement libm's copysign. |
| * real.h (real_copysign): Prototype here. |
| * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf |
| and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace. |
| * builtins.c (fold_builtin_isascii, fold_builtin_toascii, |
| fold_builtin_isdigit): Add function prototypes. |
| (fold_builtin_copysign): New function to fold copysign, copysignf |
| and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of |
| constant arguments at compile-time using real_copysign. Fold |
| copysign(X,Y) as fabs(X) if Y is always non-negative. |
| (fold_builtin_1): Correct minor whitespace/style issues. Call |
| fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}. |
| |
| 2004-06-07 J"orn Rennecke <joern.rennecke@superh.com> |
| |
| * tree.c (iterative_hash_expr): Use real_hash. |
| |
| 2004-06-07 Joseph S. Myers <jsm@polyomino.org.uk> |
| |
| PR c/14765 |
| * c-parse.in (compstmt_primary_start): Set last_expr_type to |
| NULL_TREE. |
| |
| 2004-06-07 Mark Mitchell <mark@codesourcery.com> |
| |
| PR c++/15815 |
| * doc/extend.texi: Deprecate #pragma interface and #pragma |
| implementation. |
| |
| 2004-06-07 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR middle-end/15666 |
| * c-decl.c (finish_decl): Use change_decl_assembler_name for the |
| builtin decl as well. |
| |
| 2004-06-07 Roger Sayle <roger@eyesopen.com> |
| |
| PR c/14649 |
| * c-typeck.c (require_constant_value, require_constant_elements): |
| Move declarations to the top of the file. |
| (build_function_call): If we require a constant value, fold with |
| fold_initializer. If the result is a constant, and the function |
| wasn't called using __builtin_foo, issue a pedantic warning. |
| (build_unary_op): If we require a constant value, fold tree with |
| fold_initializer. |
| (build_binary_op): Use require_constant_value to determine whether |
| to call fold or fold_initializer. |
| |
| 2004-06-07 Richard Henderson <rth@redhat.com> |
| |
| * gimple-low.c (struct lower_data): Add the_return_label and |
| one_return_stmt. |
| (lower_function_body): Initialize and use them. |
| (lower_return_expr): New. |
| (lower_stmt): Call it. |
| * gimplify.c (gimplify_return_expr): Force the argument to be either |
| null or a result_decl. |
| * tree-gimple.c: Update gimple grammer to match. |
| * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny |
| coalescing of result_decls. |
| |
| 2004-06-07 Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/15193 |
| * expmed.c (extract_bit_field): Fix vector_extract return. |
| |
| * config/i386/i386.md (negv4sf2): New pattern. |
| |
| 2004-06-07 Mark Mitchell <mark@codesourcery.com> |
| |
| PR c++/15337 |
| * c-common.c (c_sizeof_or_alignof_type): Use more detailed error |
| message. |
| |
| 2004-06-06 Paolo Bonzini <bonzini@gnu.org> |
| |
| * config.in: Regenerate. |
| |
| 2004-06-06 Steven Bosscher <stevenb@suse.de> |
| |
| * tree-cfg.c (tree_verify_flow_info): Make sure that labels in |
| SWITCH_LABELS are always sorted. |
| |
| 2004-06-06 Steven Bosscher <stevenb@suse.de> |
| |
| * hooks.c (hook_int_void_1): New generic hook. |
| * hooks.h (hook_int_void_1): Add prototype. |
| * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): |
| Define to hook_int_void_1. |
| * config/c4x/c4x.md: Replace dummies for the old pipeline model |
| with dummies for the new one. |
| |
| 2004-06-06 Roger Sayle <roge
|