aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2004-09-29tree.h (INDIRECT_REF_P): New macro.Daniel Berlin9-36/+36
2004-09-29 Daniel Berlin <dberlin@dberlin.org> * tree.h (INDIRECT_REF_P): New macro. * alias.c (get_alias_set): Use it (nonoverlapping_memrefs_p): Ditto. * emit-rtl.c (mem_expr_equal_p): Ditto. (set_mem_attributes_minus_bitpos): Ditto. (is_gimple_addressable): Ditto. (get_base_address): Ditto. * tree-ssa-alias.c (find_ptr_derefernece): Ditto. * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto. * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto. * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto. * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto. (add_address_candidates): Ditto. (rewrite_address_base): Ditto. From-SVN: r88309
2004-09-30tree-flow.h (struct bb_ann_d): Remove num_preds member.Ben Elliston4-14/+12
* tree-flow.h (struct bb_ann_d): Remove num_preds member. * tree-into-ssa.c (rewrite_into_ssa): Don't set it. (rewrite_ssa_into_ssa): Likewise. * tree-phinodes.c (create_phi_node): Access the number of predecessor edges using EDGE_COUNT() and not num_preds. Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu> Co-Authored-By: Steven Bosscher <stevenb@suse.de> From-SVN: r88308
2004-09-29re PR c/7425 (deprecated attribute doesn't merge with multiple declarations)Joseph Myers7-0/+44
PR c/7425 * c-decl.c (merge_decls): Merge TREE_DEPRECATED. cp: * decl.c (duplicate_decls): Merge TREE_DEPRECATED. testsuite: * gcc.dg/deprecated-3.c, g++.dg/warn/deprecated-2.C: New tests. From-SVN: r88303
2004-09-29revert accidental checkinJason Merrill1-17/+8
From-SVN: r88302
2004-09-29fold-const.c (tree_swap_operands_p): Remove duplicated code.Eric Christopher2-44/+39
2004-09-29 Eric Christopher <echristo@redhat.com> * fold-const.c (tree_swap_operands_p): Remove duplicated code. From-SVN: r88299
2004-09-29cris.md (moverside, movemside): With MEM, make sure the address is (plus reg ↵Hans-Peter Nilsson2-6/+13
mem). * config/cris/cris.md (moverside, movemside): With MEM, make sure the address is (plus reg mem). From-SVN: r88298
2004-09-29re PR tree-optimization/17697 (ICE: Statement marked for throw, but doesn't ↵Jason Merrill2-8/+24
- verify_stmts failed) PR tree-optimization/17697 * decl.c (duplicate_decls): Copy TREE_NOTHROW from newdecl to olddecl. From-SVN: r88293
2004-09-29* config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.David Edelsohn2-1/+7
From-SVN: r88290
2004-09-29re PR java/17007 (Inconsistent builtin attributes set by Java front end)Andrew Haley3-3/+11
2004-09-29 Andrew Haley <aph@redhat.com> PR java/17007 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the result of TRUNC_MOD_EXPR. (patch_unaryop): Likewise for CONVERT_EXPR, which may throw. * decl.c (java_init_decl_processing): Mark soft_lookupinterfacemethod_node and soft_instanceof_node pure. From-SVN: r88289
2004-09-29tree.c (make_node_stat): Fix uninitialized warning.Nathan Sidwell2-14/+38
* tree.c (make_node_stat): Fix uninitialized warning. Replace cascaded if ... else if with a switch. From-SVN: r88288
2004-09-29* read-rtl.c (apply_macro_to_string): Replace index with strchr.Aaron W. LaFramboise2-2/+6
From-SVN: r88283
2004-09-29tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD and ↵Jakub Jelinek19-33/+1509
TI_VA_LIST_FPR_COUNTER_FIELD. * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD and TI_VA_LIST_FPR_COUNTER_FIELD. (va_list_gpr_counter_field, va_list_fpr_counter_field): Define. * tree-pass.h (pass_stdarg): Add. * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg. * tree-stdarg.c: New file. * Makefile.in (OBJS-common): Add tree-stdarg.o. (tree-stdarg.o): Add dependencies. * function.h (struct function): Add va_list_gpr_size and va_list_fpr_size fields. * function.c (allocate_struct_function): Initialize them. * config/i386/i386.c (ix86_build_builtin_va_list): Initialize va_list_{g,f}pr_counter_field. (ix86_setup_incoming_varargs): Don't do anything if reg_save area will not be used. Only save registers that tree-stdarg.c detected they need saving. (ix86_va_start): Don't set up fields that won't be used. * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize va_list_{g,f}pr_counter_field. (setup_incoming_varargs): Don't do anything if reg_save area will not be used. Only save registers that tree-stdarg.c detected they need saving. (rs6000_va_start): Don't set up fields that won't be used. * gcc.c-torture/execute/stdarg-1.c: New test. * gcc.c-torture/execute/stdarg-2.c: New test. * gcc.c-torture/execute/stdarg-3.c: New test. * gcc.dg/tree-ssa/stdarg-1.c: New test. * gcc.dg/tree-ssa/stdarg-2.c: New test. * gcc.dg/tree-ssa/stdarg-3.c: New test. * gcc.dg/tree-ssa/stdarg-4.c: New test. * gcc.dg/tree-ssa/stdarg-5.c: New test. From-SVN: r88279
2004-09-29builtins.def (BUILT_IN_FPUTC, [...]): Remove nothrow attribute.Jakub Jelinek3-10/+27
* builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE, BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute. * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2, ATTR_NONNULL_1_4): New. From-SVN: r88278
2004-09-29re PR tree-optimization/17697 (ICE: Statement marked for throw, but doesn't ↵Jakub Jelinek6-0/+113
- verify_stmts failed) PR tree-optimization/17697 * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup cfg if needed. * g++.dg/opt/pr17697-1.C: New test. * g++.dg/opt/pr17697-2.C: New test. * g++.dg/opt/pr17697-3.C: New test. From-SVN: r88277
2004-09-28Oops - fix typo in ChangeLog.Per Bothner1-1/+1
From-SVN: r88272
2004-09-28profile.c (brnahc_prob): Pass correct value to output_location, even when ↵Per Bothner2-1/+6
USE_MAPPED_LOCATION. * profile.c (brnahc_prob): Pass correct value to output_location, even when USE_MAPPED_LOCATION. Fixes bug from 09-11. From-SVN: r88271
2004-09-29re PR middle-end/17525 (ICE in emit_move_insn (non-BLKmode arg))Jason Merrill3-0/+23
PR middle-end/17525 * class.c (build_base_field): Set TYPE_MODE. From-SVN: r88270
2004-09-28re PR tree-optimization/15089 (local register variable with a specified ↵Richard Henderson6-9/+50
register is bad) PR 15089 * tree-ssa-copy.c (may_propagate_copy_into_asm): New. * tree-flow.h (may_propagate_copy_into_asm): Declare. * tree-ssa-ccp.c (replace_uses_in): Use it. * tree-ssa-dom.c (cprop_operand): Likewise. From-SVN: r88269
2004-09-28tree-ssa-threadupdate.c (create_block_for_threading): Request that no ↵Jeff Law3-42/+82
outgoing edges be left in the duplicate block. * tree-ssa-threadupdate.c (create_block_for_threading): Request that no outgoing edges be left in the duplicate block. Do no update information on outgoing edges or PHI nodes in target blocks here. (remove_ctrl_stmt_and_useless_edges): Renamed from remove_last_stmt_and_useless_edges. Handle case where the block is empty or has no control statements. Do not update edge flags here. (thread_block): Create a template block rather than copying the original block every time. Create outgoing edges from the duplicate blocks and update PHIs at the target of the outgoing edges here. Fix edge flags for the original block if necessary. * cfghooks (duplicate_block): No longer assert that the original block has incoming edges. From-SVN: r88267
2004-09-29extend.texi (Extended Asm): Add blurb about using Explicit Reg Vars to ↵Hans-Peter Nilsson2-3/+29
enforce register allocation with... * doc/extend.texi (Extended Asm): Add blurb about using Explicit Reg Vars to enforce register allocation with general constraints. (Explicit Reg Vars): Clarify relation to asm statements. (Local Reg Vars): Similar. From-SVN: r88265
2004-09-29sched-rgn.c (haifa_edge, [...]): Remove.Ulrich Weigand2-402/+269
* sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES, build_control_flow, new_edge): Remove. (schedule_insns): Remove edge_table/in_edges/out_edges cleanup. (bitlst, bitlst_table_last, bitlst_table): Remove. (bblst): Store basic_block pointer instead of block index. (bblst_table): Likewise. (edgelst): Store edge pointer instead of edge index. (edgelst_table, edgelst_last): New variables. (extract_bitlst): Rename to ... (extract_edgelst): ... this. Return edge pointers, not indices. (split_edges): Update call. (rgn_edges): Store edge pointers instead of indices. (edge_to_bit): Remove. (EDGE_TO_BIT): Store per-region edge index in edge->aux. (SET_EDGE_TO_BIT): New macro. (is_cfg_nonregular): Check for simple cases of unreachable blocks. (find_rgns): Remove edge_list parameter. Traverse standard CFG data structures instead of haifa_edge et al. Use edge pointers instead of edge indices everywhere. (compute_dom_prob_ps): Use standard CFG data structures. Account for exit edges. (compute_trg_info): Likewise. (propagate_deps): Likewise. (debug_candidate): Account for bblst data structure change. (check_live_1, update_live_1, is_pfree): Likewise. (IS_REACHABLE): Use standard CFG data structures. (init_ready_list): Update bblst_table/edgelst_table allocation. (schedule_region): Update alloc/cleanup code to data structure changes. Use edge->aux to store per-region edge index. (init_regions): No longer call build_control_flow. Do not create edge list any more. From-SVN: r88264
2004-09-29Daily bump.GCC Administrator1-1/+1
From-SVN: r88262
2004-09-28cse.c (cse_insn): Avoid creating direct non-local jumps.Ulrich Weigand4-0/+18
* cse.c (cse_insn): Avoid creating direct non-local jumps. * combine.c (can_combine_p): Likewise. * local-alloc. (update_equiv_regs): Likewise. From-SVN: r88258
2004-09-28re PR tree-optimization/17531 ([ivopts] ICE compiling gzip deflate.c)Richard Henderson3-16/+42
PR 17531 * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls. Don't check VOIDmode here. Force PLUS operands to common type. (expand_expr_addr_expr): Do VOIDmode check earlier. Force use of Pmode if given a non pointer type. PR 17531 * optabs.c (expand_binop): Force constants to the correct mode. From-SVN: r88257
2004-09-28re PR driver/17537 (g++ not passing -lstdc++ to linker when -l is only supplied)Roger Sayle2-0/+9
PR driver/17537 * g++spec.c (lang_specific_driver): Unrecognized libraries, other than -lc and -lm, may require linking against libstc++. From-SVN: r88256
2004-09-28s390.c (s390_adjust_cost): Remove.Ulrich Weigand3-39/+13
* config/s390/s390.c (s390_adjust_cost): Remove. (TARGET_SCHED_ADJUST_COST): Do not redefine. (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE. * config/s390/s390.md ("main_pool"): Use "larl" type attribute if TARGET_CPU_ZARCH. From-SVN: r88254
2004-09-28ia64.c (ia64_expand_prologue): Declare ei variable.Jakub Jelinek2-0/+6
* config/ia64/ia64.c (ia64_expand_prologue): Declare ei variable. From-SVN: r88253
2004-09-28tree-ssa-loop.c (pass_record_bounds): Do not assign a name to the pass.Diego Novillo2-1/+6
* tree-ssa-loop.c (pass_record_bounds): Do not assign a name to the pass. From-SVN: r88252
2004-09-28common.opt (flag_gcse_sm): Disable by default.Steven Bosscher4-16/+13
* common.opt (flag_gcse_sm): Disable by default. (flag_gcse_las): Likewise. (flag_web): Likewise. Create from this file. * flags.h: Remove flag_web declaration. * toplev.c (flag_web): Likewise. (process_options): Never set flag_web. From-SVN: r88250
2004-09-28Makefile.in (tree-ssa-propagate.o): Depend on vec.h.Steven Bosscher3-20/+33
* Makefile.in (tree-ssa-propagate.o): Depend on vec.h. * tree-ssa-propagate.c: Include vec.h. (interesting_ssa_edges, varying_ssa_edges): Make these VECs instead of varrays. (cfg_blocks_add): Assert the block is not already in the worklist. Update uses of interesting_ssa_edges and varying_ssa_edges. (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini, ssa_propagate): Likewise. From-SVN: r88249
2004-09-28re PR c/16409 (ICE in size_binop, at fold-const.c)Joseph Myers8-1/+67
PR c/16409 * c-decl.c (start_decl): Check for initializing incomplete array of VLAs. (build_compound_literal): Check for TYPE being error_mark_node. * c-parse.in (primary): Check for VLA compound literals. testsuite: * gcc.dg/vla-init-2.c, gcc.dg/vla-init-3.c, gcc.dg/vla-init-4.c, gcc.dg/vla-init-5.c: New tests. From-SVN: r88248
2004-09-28re PR java/15710 (ICE: tree check: expected class 'E', have 'c' ↵Tom Tromey2-0/+8
(integer_cst) in make_class_data) PR java/15710: * class.c (add_miranda_methods): Load superinterface if not already loaded. From-SVN: r88243
2004-09-28tree-ssa-live.c (calculate_live_on_entry): Fix warnings with --disable-checking.Diego Novillo2-1/+6
* tree-ssa-live.c (calculate_live_on_entry): Fix warnings with --disable-checking. From-SVN: r88241
2004-09-28* tree-pretty-print.c (dump_generic_node): Print vector types.Devang Patel2-1/+11
From-SVN: r88240
2004-09-28re PR java/17586 (kawa build fails with ICE)Andrew Haley2-6/+13
2004-09-28 Andrew Haley <aph@redhat.com> PR java/17586 * jcf-parse.c (load_class): Don't try to read a class that we've already read. From-SVN: r88239
2004-09-28sh.h (INIT_CUMULATIVE_ARGS): Replace with an invocation of the function ↵Nick Clifton4-40/+87
sh_init_cumulative_args. sh.h (INIT_CUMULATIVE_ARGS): Replace with an invocation of the function sh_init_cumulative_args. (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise. (INIT_CUMULATIVE_INCOMING_ARGS): Delete. sh-protos.h: Prototype sh_init_cumulative_args. sh.c (sh_init_cumulative_args): New function based on the contents of the old INIT_CUMULATIVE_ARGS macro but with a heuristic added to determine the setting of force_mem when a library function is being called. From-SVN: r88238
2004-09-28tree-ssa-loop-im.c (single_reachable_address): Skip constant arguments.Diego Novillo2-2/+8
* tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>: Skip constant arguments. From-SVN: r88237
2004-09-28jcf-parse.c (load_class): Back out previous broken patch.Andrew Haley2-18/+6
2004-09-28 Andrew Haley <aph@redhat.com> * jcf-parse.c (load_class): Back out previous broken patch. From-SVN: r88234
2004-09-28re PR java/17586 (kawa build fails with ICE)Andrew Haley2-2/+25
2004-09-28 Andrew Haley <aph@redhat.com> PR java/17586 * jcf-parse.c (load_class): Don't try to read a class that we've already read. Check that we really did read the right class. From-SVN: r88233
2004-09-28tree-ssa-alias.c (create_name_tags): If PTR points to a volatile type, mark ↵Diego Novillo2-1/+11
the tag volatile. * tree-ssa-alias.c (create_name_tags): If PTR points to a volatile type, mark the tag volatile. (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag volatile. From-SVN: r88232
2004-09-28tree.def (vec_cond_expr): Fix.Andrew Pinski2-1/+6
2004-09-28 Andrew Pinski <pinskia@physics.uc.edu> * tree.def (vec_cond_expr): Fix. Change 'e' to tcc_expression. From-SVN: r88231
2004-09-28* basic-block.h: Fix a comment typo.Kazu Hirata2-1/+5
From-SVN: r88230
2004-09-28* tree.c: Fix a comment typo.Kazu Hirata2-1/+5
From-SVN: r88229
2004-09-28* optabs.c, optabs.h: Fix comment typos.Kazu Hirata3-2/+6
From-SVN: r88228
2004-09-28sparc.md (call_address_struct_value_sp32): Properly mask the immediate field ↵Eric Botcazou2-2/+14
of the 'unimp' instruction. * config/sparc/sparc.md (call_address_struct_value_sp32): Properly mask the immediate field of the 'unimp' instruction. (call_symbolic_struct_value_sp32): Likewise. From-SVN: r88227
2004-09-28class.c (VTT_TOP_LEVEL_P, [...]): Remove.Nathan Sidwell3-191/+107
* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): Remove. (struct secondary_vptr_vtt_init_data_s): New. (build_vtt_inits): Adjust dfs_walkers. (dfs_build_secondary_vptr_vtt_inits): Caller data is a secondary_vptr_vtt_init_data_s structure. Adjust. (dfs_ctor_vtable_bases_queue_p): Remove. (dfs_fixup_binfo_vtbls): No need to clear BINFO_MARKED. Simplify. * pt.c (struct get_template_base_data_s): Remove. (get_template_base_r): Fold into get_template_base. (get_template_base): Walk base binfos directly in inheritance graph order. Remove duplicated changelog entries From-SVN: r88224
2004-09-28backport: basic-block.h: Include vec.h, errors.h.Ben Elliston79-1396/+2170
2004-09-24 Ben Elliston <bje@au.ibm.com> Steven Bosscher <stevenb@suse.de> Andrew Pinski <pinskia@physics.uc.edu> Merge from edge-vector-branch: * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge). (struct edge_def): Remove pred_next, succ_next members. (struct basic_block_def): Remove pred, succ members. Add preds and succs members of type VEC(edge). (FALLTHRU_EDGE): Redefine using EDGE_SUCC. (BRANCH_EDGE): Likewise. (EDGE_CRITICAL_P): Redefine using EDGE_COUNT. (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New. (edge_iterator): New. (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New. (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise. (FOR_EACH_EDGE): New. * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros where applicable. (rotate_loop): Likewise. (find_traces_1_route): Likewise. (bb_to_key): Likewise. (connect_traces): Likewise. (copy_bb_p): Likewise. (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise. (add_labels_and_missing_jumps): Likewise. (fix_up_fall_thru_edges): Likewise. (find_jump_block): Likewise. (fix_crossing_conditional_branches): Likewise. (fix_crossing_unconditional_branches): Likewise. (add_reg_crossing_jump_notes): Likewise. * bt-load.c (augment_live_range): Likewise. * cfg.c (clear_edges): Likewise. (unchecked_make_edge): Likewise. (cached_make_edge): Likewise. (make_single_succ_edge): Likewise. (remove_edge): Likewise. (redirect_edge_succ_nodup): Likewise. (check_bb_profile): Likewise. (dump_flow_info): Likewise. (alloc_aux_for_edges): Likewise. (clear_aux_for_edges): Likewise. (dump_cfg_bb_info): Likewise. * cfganal.c (forwarder_block_p): Likewise. (can_fallthru): Likewise. (could_fall_through): Likewise. (mark_dfs_back_edges): Likewise. (set_edge_can_fallthru_flag): Likewise. (find_unreachable_blocks): Likewise. (create_edge_list): Likewise. (verify_edge_list): Likewise. (add_noreturn_fake_exit_edges): Likewise. (connect_infinite_loops_to_exit): Likewise. (flow_reverse_top_sort_order_compute): Likewise. (flow_depth_first_order_compute): Likewise. (flow_preorder_transversal_compute): Likewise. (flow_dfs_compute_reverse_execute): Likewise. (dfs_enumerate_from): Likewise. (compute_dominance_frontiers_1): Likewise. * cfgbuild.c (make_edges): Likewise. (compute_outgoing_frequencies): Likewise. (find_many_sub_basic_blocks): Likewise. (find_sub_basic_blocks): Likewise. * cfgcleanup.c (try_simplify_condjump): Likewise. (thread_jump): Likewise. (try_forward_edges): Likewise. (merge_blocks_move): Likewise. (outgoing_edges_match): Likewise. (try_crossjump_to_edge): Likewise. (try_crossjump_bb): Likewise. (try_optimize_cfg): Likewise. (merge_seq_blocks): Likewise. * cfgexpand.c (expand_gimple_tailcall): Likewise. (expand_gimple_basic_block): Likewise. (construct_init_block): Likewise. (construct_exit_block): Likewise. * cfghooks.c (verify_flow_info): Likewise. (dump_bb): Likewise. (delete_basic_block): Likewise. (split_edge): Likewise. (merge_blocks): Likewise. (make_forwarder_block): Likewise. (tidy_fallthru_edges): Likewise. (can_duplicate_block_p): Likewise. (duplicate_block): Likewise. * cfglayout.c (fixup_reorder_chain): Likewise. (fixup_fallthru_exit_predecessor): Likewise. (can_copy_bbs_p): Likewise. (copy_bbs): Likewise. * cfgloop.c (flow_loops_cfg_dump): Likewise. (flow_loop_entry_edges_find): Likewise. (flow_loop_exit_edges_find): Likewise. (flow_loop_nodes_find): Likewise. (mark_single_exit_loops): Likewise. (flow_loop_pre_header_scan): Likewise. (flow_loop_pre_header_find): Likewise. (update_latch_info): Likewise. (canonicalize_loop_headers): Likewise. (flow_loops_find): Likewise. (get_loop_body_in_bfs_order): Likewise. (get_loop_exit_edges): Likewise. (num_loop_branches): Likewise. (verify_loop_structure): Likewise. (loop_latch_edge): Likewise. (loop_preheader_edge): Likewise. * cfgloopanal.c (mark_irreducible_loops): Likewise. (expected_loop_iterations): Likewise. * cfgloopmanip.c (remove_bbs): Likewise. (fix_bb_placement): Likewise. (fix_irreducible_loops): Likewise. (remove_path): Likewise. (scale_bbs_frequencies): Likewise. (loopify): Likewise. (unloop): Likewise. (fix_loop_placement): Likewise. (loop_delete_branch_edge): Likewise. (duplicate_loop_to_header_edge): Likewise. (mfb_keep_just): Likewise. (create_preheader): Likewise. (force_single_succ_latches): Likewise. (loop_split_edge_with): Likewise. (create_loop_notes): Likewise. * cfgrtl.c (rtl_split_block): Likewise. (rtl_merge_blocks): Likewise. (rtl_can_merge_blocks): Likewise. (try_redirect_by_replacing_jump): Likewise. (force_nonfallthru_and_redirect): Likewise. (rtl_tidy_fallthru_edge): Likewise. (commit_one_edge_insertion): Likewise. (commit_edge_insertions): Likewise. (commit_edge_insertions_watch_calls): Likewise. (rtl_verify_flow_info_1): Likewise. (rtl_verify_flow_info): Likewise. (purge_dead_edges): Likewise. (cfg_layout_redirect_edge_and_branch): Likewise. (cfg_layout_can_merge_blocks_p): Likewise. (rtl_flow_call_edges_add): Likewise. * cse.c (cse_cc_succs): Likewise. * df.c (hybrid_search): Likewise. * dominance.c (calc_dfs_tree_nonrec): Likewise. (calc_dfs_tree): Likewise. (calc_idoms): Likewise. (recount_dominator): Likewise. * domwalk.c (walk_dominator_tree): Likewise. * except.c (emit_to_new_bb_before): Likewise. (connect_post_landing_pads): Likewise. (sjlj_emit_function_enter): Likewise. (sjlj_emit_function_exit): Likewise. (finish_eh_generation): Likewise. * final.c (compute_alignments): Likewise. * flow.c (calculate_global_regs_live): Likewise. (initialize_uninitialized_subregs): Likewise. (init_propagate_block_info): Likewise. * function.c (thread_prologue_and_epilogue_insns): Likewise. * gcse.c (find_implicit_sets): Likewise. (bypass_block): Likewise. (bypass_conditional_jumps): Likewise. (compute_pre_data): Likewise. (insert_insn_end_bb): Likewise. (insert_store): Likewise. (remove_reachable_equiv_notes): Likewise. * global.c (global_conflicts): Likewise. (calculate_reg_pav): Likewise. * graph.c (print_rtl_graph_with_bb): Likewise. * ifcvt.c (mark_loop_exit_edges): Likewise. (merge_if_block): Likewise. (find_if_header): Likewise. (block_jumps_and_fallthru_p): Likewise. (find_if_block): Likewise. (find_cond_trap): Likewise. (block_has_only_trap): Likewise. (find_if_case1): Likewise. (find_if_case_2): Likewise. * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. (perfect_nestify): Likewise. * lcm.c (compute_antinout_edge): Likewise. (compute_laterin): Likewise. (compute_available): Likewise. (compute_nearerout): Likewise. * loop-doloop.c (doloop_modify): Likewise. * loop-init.c (loop_optimizer_init): Likewise. * loop-invariant.c (find_exits): Likewise. * loop-iv.c (simplify_using_initial_values): Likewise. (check_simple_exit): Likewise. (find_simple_exit): Likewise. * loop-unroll.c (peel_loop_completely): Likewise. (unroll_loop_constant_iterations): Likewise. (unroll_loop_runtime_iterations): Likewise. * loop-unswitch.c (may_unswitch_on): Likewise. (unswitch_loop): Likewise. * modulo-sched.c (generate_prolog_epilog): Likewise. (sms_schedule): Likewise. * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. * predict.c (can_predict_insn_p): Likewise. (set_even_probabilities): Likewise. (combine_predictions_for_bb): Likewise. (predict_loops): Likewise. (estimate_probability): Likewise. (tree_predict_by_opcode): Likewise. (tree_estimate_probability): Likewise. (last_basic_block_p): Likewise. (propagate_freq): Likewise. (estimate_loops_at_level): Likewise. (estimate_bb_frequencies): Likewise. * profile.c (instrument_edges): Likewise. (get_exec_counts): Likewise. (compute_branch_probabilities): Likewise. (branch_prob): Likewise. * ra-build.c (live_in): Likewise. * ra-rewrite.c (rewrite_program2): Likewise. * ra.c (reg_alloc): Likewise. * reg-stack.c (reg_to_stack): Likewise. (convert_regs_entry): Likewise. (compensate_edge): Likewise. (convert_regs_1): Likewise, (convert_regs_2): Likewise. (convert_regs): Likewise. * regrename.c (copyprop_hardreg_forward): Likewise. * reload1.c (fixup_abnormal_edges): Likewise. * sbitmap.c (sbitmap_intersection_of_succs): Likewise. (sbitmap_insersection_of_preds): Likewise. (sbitmap_union_of_succs): Likewise. (sbitmap_union_of_preds): Likewise. * sched-ebb.c (compute_jump_reg_dependencies): Likewise. (fix_basic_block_boundaries): Likewise. (sched_ebbs): Likewise. * sched-rgn.c (build_control_flow): Likewise. (find_rgns): Likewise. * tracer.c (find_best_successor): Likewise. (find_best_predecessor): Likewise. (tail_duplicate): Likewise. * tree-cfg.c (make_edges): Likewise. (make_ctrl_stmt_edges): Likewise. (make_goto_expr_edges): Likewise. (tree_can_merge_blocks_p): Likewise. (tree_merge_blocks): Likewise. (cfg_remove_useless_stmts_bb): Likewise. (remove_phi_nodes_and_edges_for_unreachable_block): Likewise. (tree_block_forwards_to): Likewise. (cleanup_control_expr_graph): Likewise. (find_taken_edge): Likewise. (dump_cfg_stats): Likewise. (tree_cfg2vcg): Likewise. (disband_implicit_edges): Likewise. (tree_find_edge_insert_loc): Likewise. (bsi_commit_edge_inserts): Likewise. (tree_split_edge): Likewise. (tree_verify_flow_info): Likewise. (tree_make_forwarder_block): Likewise. (tree_forwarder_block_p): Likewise. (thread_jumps): Likewise. (tree_try_redirect_by_replacing_jump): Likewise. (tree_split_block): Likewise. (add_phi_args_after_copy_bb): Likewise. (rewrite_to_new_ssa_names_bb): Likewise. (dump_function_to_file): Likewise. (print_pred_bbs): Likewise. (print_loop): Likewise. (tree_flow_call_edges_add): Likewise. (split_critical_edges): Likewise. (execute_warn_function_return): Likewise. (extract_true_false_edges_from_block): Likewise. * tree-if-conv.c (tree_if_conversion): Likewise. (if_convertable_bb_p): Likewise. (find_phi_replacement_condition): Likewise. (combine_blocks): Likewise. * tree-into-ssa.c (compute_global_livein): Likewise. (ssa_mark_phi_uses): Likewise. (ssa_rewrite_initialize_block): Likewise. (rewrite_add_phi_arguments): Likewise. (ssa_rewrite_phi_arguments): Likewise. (insert_phi_nodes_for): Likewise. (rewrite_into_ssa): Likewise. (rewrite_ssa_into_ssa): Likewise. * tree-mudflap.c (mf_build_check_statement_for): Likewise. * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise. (rewrite_trees): Likewise. * tree-pretty-print.c (dump_bb_header): Likewise. (dump_implicit_edges): Likewise. * tree-sra.c (insert_edge_copies): Likewise. (find_obviously_necessary_stmts): Likewise. (remove_data_stmt): Likewise. * tree-ssa-dom.c (thread_across_edge): Likewise. (dom_opt_finalize_block): Likewise. (single_incoming_edge_ignoring_loop_edges): Likewise. (record_equivalences_from_incoming_edges): Likewise. (cprop_into_successor_phis): Likewise. * tree-ssa-live.c (live_worklist): Likewise. (calculate_live_on_entry): Likewise. (calculate_live_on_exit): Likewise. * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. (copy_loop_headers): Likewise. * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. (fill_always_executed_in): Likewise. * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise. * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise. (compute_phi_arg_on_exit): Likewise. * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise. (get_loops_exit): Likewise. (split_loop_exit_edge): Likewise. (ip_normal_pos): Likewise. * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise. * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise. (replace_phi_with_stmt): Likewise. (value_replacement): Likewise. * tree-ssa-pre.c (compute_antic_aux): Likewise. (insert_aux): Likewise. (init_pre): Likewise. * tree-ssa-propagate.c (simulate_stmt): Likewise. (simulate_block): Likewise. (ssa_prop_init): Likewise. * tree-ssa-threadupdate.c (thread_block): Likewise. (create_block_for_threading): Likewise. (remove_last_stmt_and_useless_edges): Likewise. * tree-ssa.c (verify_phi_args): Likewise. (verify_ssa): Likewise. * tree_tailcall.c (independent_of_stmt_p): Likewise. (find_tail_calls): Likewise. (eliminate_tail_call): Likewise. (tree_optimize_tail_calls_1): Likewise. * tree-vectorizer.c (vect_transform_loop): Likewise. * var-tracking.c (prologue_stack_adjust): Likewise. (vt_stack_adjustments): Likewise. (vt_find_locations): Likewise. * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. * config/i386/i386.c (ix86_pad_returns): Likewise. * config/ia64/ia64.c (ia64_expand_prologue): Likewise. * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu> Co-Authored-By: Steven Bosscher <stevenb@suse.de> From-SVN: r88222
2004-09-28re PR target/16532 (Inefficient jump to epilogue)Eric Botcazou5-24/+99
PR target/16532 * config/sparc/sparc.c (struct machine_function): New field 'leaf_function_p' and 'prologue_data_valid_p'. (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro to conveniently access the above fields. (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete. (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead of the generic flavor 'current_function_uses_only_leaf_regs'. (eligible_for_sibcall_delay): Likewise. (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set 'sparc_prologue_data_valid_p'. Use 'sparc_leaf_function_p'. (sparc_asm_function_prologue): Add sanity check for the assumption made in 'sparc_expand_prologue'. Use 'sparc_leaf_function_p'. (sparc_can_use_return_insn_p): New function. (sparc_expand_epilogue): Use 'sparc_leaf_function_p'. (output_restore): Likewise. (output_sibcall): Likewise. (sparc_output_mi_thunk): Likewise. * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare. * config/sparc/sparc.md (return): New expander. * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak. From-SVN: r88220
2004-09-28Fix formatting.David Edelsohn1-2/+2
From-SVN: r88218
2004-09-28re PR c++/17642 (internal compiler error: in invert_truthvalue, at ↵Mark Mitchell13-90/+205
fold-const.c:2997) PR c++/17642 * stor-layout.c (layout_decl): Use fold_convert, not convert. (bit_from_pos): Likewise. (byte_from_pos): Likewise. (pos_from_bit): Likewise. (normalize_offset): Likewise. (place_field): Likewise. (finalize_type_size): Likewise. (layout_type): Likewise. * tree.c (build_index_type): Likewise. PR c++/17642 * cp-tree.h (fold_if_not_in_template): New function. * call.c (build_conditional_expr): Use fold_if_not_in_template. (build_cxx_call): Likewise. * cvt.c (convert_to_complex): Likewise. (ocp_convert): Likewise. (convert): Likewise. (convert_force): Likewise. * decl.c (compute_array_index_type): Clear processing_template_decl while folding array bounds. * pt.c (convert_nontype_argument): Clear processing_template_decl while processing non-type argument initialization. * tree.c (fold_if_not_in_template): New function. * typeck.c (build_class_member_access_expr): Use fold_if_not_in_template. (build_array_ref): Likewise. (build_binary_op): Likewise. Do not try to optimize computations when processing templates. (cp_pointer_int_sum): Use fold_if_not_in_template. (pointer_diff): Likewise. (build_unary_op): Likewise. (build_reinterpret_cast): Likewise. (get_delta_difference): Likewise. (expand_ptrmemfunc_cst): Likewise. (dubious_conversion_warnings): Likewise. * g++.dg/template/crash23.C: New test. From-SVN: r88217