summaryrefslogtreecommitdiff
path: root/gcc
Commit message (Collapse)AuthorAgeFilesLines
* * expmed.c (expand_shift): Consider expanding LSHIFT_EXPR by asayle2004-07-012-1/+31
| | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83956 138bc75d-0d04-0410-961f-82ee72b054a4
* Index: gcc/ChangeLoggeoffk2004-07-0115-120/+791
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Index: gcc/testsuite/ChangeLog 2004-06-26 Geoffrey Keating <geoffk@apple.com> Andreas Tobler <a.tobler@schweiz.ch> * gcc.dg/cleanup-10.c: Run on all Linux platforms and powerpc-darwin. Use SA_RESETHAND rather than SA_ONESHOT. Trap SIGBUS as well as SIGSEGV. * gcc.dg/cleanup-11.c: Likewise. * gcc.dg/cleanup-8.c: Likewise. * gcc.dg/cleanup-9.c: Likewise. * gcc.dg/cleanup-5.c: Run on all platforms. Index: libjava/ChangeLog 2004-06-26 Geoffrey Keating <geoffk@apple.com> Andreas Tobler <a.tobler@schweiz.ch> * configure.host (powerpc-*-darwin*): New case, define can_unwind_signal. * configure.in (*-*-darwin*): New case, point to darwin-signal.h. * configure: Regenerate. * include/darwin-signal.h: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83953 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite.amodra2004-07-012-176/+140
| | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83951 138bc75d-0d04-0410-961f-82ee72b054a4
* * pa-protos.h (prefetch_operand): Add prototype.danglin2004-07-015-0/+148
| | | | | | | | | * pa.c (prefetch_operand): New function. * pa.h (prefetch_operand): Add to PREDICATE_CODES. * pa.md (prefetch, prefetch_32, prefetch_64): New prefetch patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83950 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.h (struct function): Remove x_whole_function_mode_p.rth2004-07-019-38/+22
| | | | | | | | | | | | | | | * 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. fortran/ * trans-decl.c (gfc_generate_function_code): Don't set x_whole_function_mode_p. (gfc_generate_constructors): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83947 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (immediate_size_expand): Delete.rth2004-07-0112-54/+25
| | | | | | | | | | | | | | | | | | | | * 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. cp/ * decl.c (start_preparsed_function): Don't set immediate_size_expand. * method.c (use_thunk): Likewise. fortran/ * trans-decl.c (gfc_generate_function_code): Don't set immediate_size_expand. (gfc_generate_constructors): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83946 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2004-07-011-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83944 138bc75d-0d04-0410-961f-82ee72b054a4
* * gimplify.c (gimplify_compound_lval): Take fallback argumentrth2004-07-014-245/+197
| | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83941 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-gimple.c (right_assocify_expr): Killrth2004-07-014-76/+5
| | | | | | | | | (rationalize_compound_expr): Kill. * tree-gimple.h: Likewise. * tree-inline.c (expand_call_inline): Don't call it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83940 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.h (struct function): Remove x_last_parm_insn,rth2004-06-303-18/+6
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83939 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:jsm282004-06-305-6/+30
| | | | | | | | | | | * call.c (build_over_call), typeck.c (build_function_call): Call check_function_arguments instead of check_function_format. testsuite: * g++.dg/warn/nonnull1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83937 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c, rtl.h (get_first_nonparm_insn): Remove.rth2004-06-303-12/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83936 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.h (check_function_format): Remove first parameter.jsm282004-06-307-144/+124
| | | | | | | | | | | | | | | | | | | | * 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. cp: * call.c (build_over_call), typeck.c (build_function_call): Update calls to check_function_format. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83935 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc-protos.h (output_cbranch): Constify returnebotcazou2004-06-304-26/+46
| | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83934 138bc75d-0d04-0410-961f-82ee72b054a4
* * common.opt (ftree-loop-optimize): New flag.rakdver2004-06-308-2/+134
| | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83933 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-loop-ch.c: New file.rakdver2004-06-3012-402/+1201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83932 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/compat/compat-common.h: Wrap up CINT inebotcazou2004-06-302-0/+12
| | | | | | | | an #ifndef SKIP_COMPLEX_INT/#endif pair. Special-case the Sun compiler wrt to <complex.h>. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83931 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c (build_over_call): Use __builtin_memcpy for copyingrth2004-06-302-22/+24
| | | | | | | CLASS_AS_BASE rather than funny casting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83928 138bc75d-0d04-0410-961f-82ee72b054a4
* * init.c (build_new_1): Fill in TYPE_DOMAIN, TYPE_SIZE andrth2004-06-302-2/+30
| | | | | | | TYPE_SIZE_UNIT of full_type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83927 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>bothner2004-06-302-2/+6
| | | | | | | * prefix.c (lookup_key): Cast buffer to LPBYTE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83925 138bc75d-0d04-0410-961f-82ee72b054a4
* Conditionally compile support for --enable-mapped_location.bothner2004-06-309-31/+74
| | | | | | | | | | | | | | | | | | | | | * decl.c (pop_label): Handle (imperfectly) USE_MAPPED_LOCATION case. * decl2.c: If USE_MAPPED_LOCATION, don't do some line number adjustments - which I don't understand. * error.c (dump_decl): Rename "<interrnal>" to "<built-in>". * error.c: Use LOCATION_FILE and EXPR_LOCATION macros. (print_instantiation_partial_context): Use expand_location. * decl.c (duplicate_decl): Use new DECL_IS_BUILTIN macro. * name-lookup.c: Likewise. * lex.c (cxx_init): Likewise. Also use BUILTINS_LOCATION. * name-lookup.c: Use input_line macro. * parser.c (cp_lexer_get_preprocessor_token): Use UNKNOWN_LOCATION. (cp_parser_statement): Rename locaal variable statement_locus to statement_location and use SET_EXPR_LOCATION macro. * pt.c: Handle USE_MAPPED_LOCATION case. Use new macros. * tree.c (cp_walk_subtrees): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83923 138bc75d-0d04-0410-961f-82ee72b054a4
* Conditionally compile support for --enable-mapped_location.bothner2004-06-309-20/+106
| | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83922 138bc75d-0d04-0410-961f-82ee72b054a4
* Conditionally compile support for --enable-mapped_location.bothner2004-06-3022-93/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83921 138bc75d-0d04-0410-961f-82ee72b054a4
* Conditionally compile support for --enable-mapped_location.bothner2004-06-3012-71/+89
| | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83920 138bc75d-0d04-0410-961f-82ee72b054a4
* Conditionally compile support for --enable-mapped_location.bothner2004-06-3010-28/+68
| | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83919 138bc75d-0d04-0410-961f-82ee72b054a4
* Conditionally compile support for --enable-mapped_location.bothner2004-06-307-31/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83918 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-30 Richard Sandiford <rsandifo@redhat.com>echristo2004-06-302-37/+51
| | | | | | | | | Eric Christopher <echristo@redhat.com> * config/mips/3000.md: Improve description. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83917 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,pbrook2004-06-302-9/+14
| | | | | | | cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83915 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/Wunreachable-8.c : New test.law2004-06-302-1/+23
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83914 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/h8300-ice2.c : New testlaw2004-06-302-0/+16
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83912 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (OBJS-common): Add tree-chrec.o.spop2004-06-306-0/+1252
| | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83909 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c: Include "output.h" to define dump_file.sayle2004-06-303-3/+176
| | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83908 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/tobi2004-06-306-210/+250
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/16161 * decl.c (gfc_match_type_spec): Rename second argument to 'implicit_flag', reverse meaning. Don't match_char_spec if 'implicit_flag' is set. Rename to ... (match_type_spec): ... this. (gfc_match_implicit_none, match_implicit_range): Move here from match.c. (gfc_match_implicit): Move here from match.c, try to match_char_len if match_implicit_range doesn't succeed for CHARACTER implicits. Call renamed fucntion match_type_spec. (gfc_match_data_decl, match_prefix): Call renamed function match_type_spec. * match.c (gfc_match_implicit_none, match_implicit_range, gfc_match_implicit): Move to decl.c. * match.h (gfc_match_implicit_none, gfc_match_implicit): Move protoypes to section 'decl.c'. (gfc_match_type_spec): Remove prototype. testsuite/ PR fortran/16161 * gfortran.fortran-torture/compile/implicit.f90: Add test for implicit character. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83907 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handlesayle2004-06-302-0/+9
| | | | | | | subtractions identically to additions, always COSTS_N_INSNS (1). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83906 138bc75d-0d04-0410-961f-82ee72b054a4
* * expmed.c (expand_smod_pow2): Fix sign of mask.amylaar2004-06-302-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83905 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-30 David Billinghurst (David.Billinghurst@riotinto.com)billingd2004-06-302-3/+8
| | | | | | | | | PR fortran/16289 * gfortran.fortran-torture/execute/intrinsic_nearest.f90 Use tiny() intrinsic to find smallest non-negative real git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83904 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/compat/struct-by-value-22_main.c: New test.jakub2004-06-304-0/+138
| | | | | | | | * gcc.dg/compat/struct-by-value-22_x.c: New. * gcc.dg/compat/struct-by-value-22_y.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83903 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariantdnovillo2004-06-303-34/+25
| | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83902 138bc75d-0d04-0410-961f-82ee72b054a4
* RTL prologue/epilogue for SPARCebotcazou2004-06-3012-993/+793
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83901 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_binary_operation): Simplifyjakub2004-06-305-0/+243
| | | | | | | | | | | | | | ((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. * gcc.c-torture/execute/20040629-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83900 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/c4x/c4x.md: Fix comment.steven2004-06-302-18/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83898 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-0630 Akos Kiss <akiss@inf.u-szeged.hu>rearnsha2004-06-302-0/+5
| | | | | | | * arm.md (cond_return_inverted): Add "length" attribute. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83896 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.c (build_min_nt, build_min, build_min_non_dep):bothner2004-06-302-3/+5
| | | | | | | Don't set TREE_COMPLEXITY from input_line. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83894 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/winnt.c (i386_pe_encode_section_info): Smash rtlname'sbothner2004-06-302-9/+14
| | | | | | | XSTR in place, so we don't lose SYMBOL_REF_DECL info. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83893 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/ia64/hpux.h: Target does too support thread-local storage.zack2004-06-302-4/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83891 138bc75d-0d04-0410-961f-82ee72b054a4
* Revert accidental commitzack2004-06-301-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83890 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (distribute_notes): Don't look at global_regs forzack2004-06-303-12/+18
| | | | | | | pseudos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83889 138bc75d-0d04-0410-961f-82ee72b054a4
* * gimplify.c (gimplify_modify_expr_rhs): Move immediately beforerth2004-06-302-367/+434
| | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83888 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2004-06-301-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83886 138bc75d-0d04-0410-961f-82ee72b054a4
* * web.c (union_defs): use all defs of an instruction to create arth2004-06-292-5/+12
| | | | | | | union with a read/write use git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83882 138bc75d-0d04-0410-961f-82ee72b054a4