- 30 Jun, 2004 40 commits
-
-
* 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. From-SVN: r83933
Zdenek Dvorak committed -
* 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. From-SVN: r83932
Zdenek Dvorak committed -
* gcc.dg/compat/compat-common.h: Wrap up CINT in an #ifndef SKIP_COMPLEX_INT/#endif pair. Special-case the Sun compiler wrt to <complex.h>. From-SVN: r83931
Eric Botcazou committed -
* call.c (build_over_call): Use __builtin_memcpy for copying CLASS_AS_BASE rather than funny casting. From-SVN: r83928
Richard Henderson committed -
* init.c (build_new_1): Fill in TYPE_DOMAIN, TYPE_SIZE and TYPE_SIZE_UNIT of full_type. From-SVN: r83927
Richard Henderson committed -
2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com> * prefix.c (lookup_key): Cast buffer to LPBYTE. From-SVN: r83925
Aaron W. LaFramboise committed -
* include/line-map.h (fileline): Remove old typedef. * internal.h (struct cpp_reader): Use source_location typedef instead. From-SVN: r83924
Per Bothner committed -
* 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. From-SVN: r83923
Per Bothner committed -
* 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. From-SVN: r83922
Per Bothner committed -
* 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. From-SVN: r83921
Per Bothner committed -
* 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. From-SVN: r83920
Per Bothner committed -
* 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. From-SVN: r83919
Per Bothner committed -
* 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. From-SVN: r83918
Per Bothner committed -
2004-06-30 Richard Sandiford <rsandifo@redhat.com> Eric Christopher <echristo@redhat.com> * config/mips/3000.md: Improve description. From-SVN: r83917
Richard Sandiford committed -
* config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn, cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads. From-SVN: r83915
Paul Brook committed -
From-SVN: r83914
Nitin Yewale committed -
2004-06-30 Benjamin Kosnik <bkoz@redhat.com> * config/linker-map.gnu: Revert. From-SVN: r83913
Benjamin Kosnik committed -
From-SVN: r83912
Nitin Yewale committed -
2004-06-30 Benjamin Kosnik <bkoz@redhat.com> Stuart Anderson <anderson@netsweng.com> * config/linker-map.gnu: Add destructor exports for abstract base classes to conform to LSB. Co-Authored-By: Stuart Anderson <anderson@netsweng.com> From-SVN: r83910
Benjamin Kosnik committed -
* 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. From-SVN: r83909
Sebastian Pop committed -
* 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. From-SVN: r83908
Roger Sayle committed -
fortran/ 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. From-SVN: r83907
Tobias Schlüter committed -
rs6000.c (rs6000_rtx_costs): Handle subtractions identically to additions, always COSTS_N_INSNS (1). * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle subtractions identically to additions, always COSTS_N_INSNS (1). From-SVN: r83906
Roger Sayle committed -
From-SVN: r83905
J"orn Rennecke committed -
2004-06-30 David Billinghurst (David.Billinghurst@riotinto.com) PR fortran/16289 * gfortran.fortran-torture/execute/intrinsic_nearest.f90 Use tiny() intrinsic to find smallest non-negative real From-SVN: r83904
David Billinghurst committed -
* gcc.dg/compat/struct-by-value-22_main.c: New test. * gcc.dg/compat/struct-by-value-22_x.c: New. * gcc.dg/compat/struct-by-value-22_y.c: New. From-SVN: r83903
Jakub Jelinek committed -
* 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. From-SVN: r83902
Diego Novillo committed -
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. From-SVN: r83901
Eric Botcazou committed -
* 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. * gcc.c-torture/execute/20040629-1.c: New test. From-SVN: r83900
Jakub Jelinek committed -
* src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment character on Darwin, use '\n\t' instead. From-SVN: r83899
Geoffrey Keating committed -
From-SVN: r83898
Steven Bosscher committed -
2004-06-30 Gabriel Dos Reis <gdr@integrable-solutions.net> Paolo Carlini <pcarlini@suse.de> * include/bits/cpp_type_traits.h: Add __is_pointer and __is_trivially_copyable. * include/bits/stl_algobase.h (fill, fill_n): Slightly tweak to use the latter. (__copy_backward_dispatch): Remove. (__copy_backward_aux): Rewrite to use __is_pointer and __is_trivially_copyable and __copy_backward::copy_b. (__copy_backward): Rewrite as a class template and two specializations. 2004-06-30 Paolo Carlini <pcarlini@suse.de> * testsuite/25_algorithms/copy.cc: Move to... * testsuite/25_algorithms/copy/1.cc: ... here, extend. * testsuite/25_algorithms/copy/2.cc: New. * testsuite/25_algorithms/copy/3.cc: New. * testsuite/25_algorithms/copy/4.cc: New. From-SVN: r83897
Paolo Carlini committed -
2004-0630 Akos Kiss <akiss@inf.u-szeged.hu> * arm.md (cond_return_inverted): Add "length" attribute. From-SVN: r83896
Akos Kiss committed -
* intrinsics/rand.c (rand): Wrap the irand() call from the previous commit in prefix. Co-Authored-By: Steven Bosscher <stevenb@suse.de> From-SVN: r83895
Steve Kargl committed -
* tree.c (build_min_nt, build_min, build_min_non_dep): Don't set TREE_COMPLEXITY from input_line. From-SVN: r83894
Per Bothner committed -
winnt.c (i386_pe_encode_section_info): Smash rtlname's XSTR in place, so we don't lose SYMBOL_REF_DECL info. * config/i386/winnt.c (i386_pe_encode_section_info): Smash rtlname's XSTR in place, so we don't lose SYMBOL_REF_DECL info. From-SVN: r83893
Per Bothner committed -
* jni.cc (_Jv_JNI_NewGlobalRef, JNICALL _Jv_JNI_DeleteGlobalRef, etc etc): Remove needless parenthesis, which causes __stdcall__ attribute on MinGW to get ignored. From-SVN: r83892
Per Bothner committed -
From-SVN: r83891
Zack Weinberg committed -
From-SVN: r83890
Zack Weinberg committed -
* combine.c (distribute_notes): Don't look at global_regs for pseudos. From-SVN: r83889
Zack Weinberg committed
-