aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
AgeCommit message (Collapse)AuthorFilesLines
2005-04-03cfghooks.c (lv_flush_pending_stmts, [...]): New.Mostafa Hagog1-0/+70
2005-03-30 Mostafa Hagog <mustafa@il.ibm.com> * cfghooks.c (lv_flush_pending_stmts, cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges, lv_adjust_loop_header_phi, lv_add_condition_to_bb): New. * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge, lv_add_condition_to_bb, lv_adjust_loop_header_phi, extract_cond_bb_edges, flush_pending_stmts): New in cfg_hooks structure. (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts, extract_cond_bb_edges, lv_adjust_loop_header_phi, lv_add_condition_to_bb): New declarations. * cfgloop.h (duplicate_loop_to_header_edge): Change return type to bool. (loop_version): Declare. * cfgloopmanip.c (cfghooks.h): Include. (duplicate_loop_to_header_edge): Change return type to bool. (loop_version, lv_adjust_loop_entry_edge): Move here. * cfgrtl.c (cfgloop.h): Include. (rtl_verify_flow_info_1): Fix. (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New. (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to initialization. * tree-cfg.c (tree_lv_adjust_loop_header_phi, tree_lv_add_condition_to_bb): New. (tree_cfg_hooks): Add new hooks to initialization. * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove. From-SVN: r97481
2005-03-18* tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.Jan Hubicka1-2/+2
From-SVN: r96655
2005-03-14tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of integer_zerop.Zdenek Dvorak1-12/+3
* tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of integer_zerop. * tree-gimple.c (is_gimple_min_invariant): Consider overflowed constants invariant. * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert the argument of the shift to the unsigned type. From-SVN: r96435
2005-03-14tree-cfg.c (verify_stmts): Check that bb_for_stmt (stmt) == bb for every PHI ↵Kazu Hirata1-0/+13
node and statement. * tree-cfg.c (verify_stmts): Check that bb_for_stmt (stmt) == bb for every PHI node and statement. From-SVN: r96418
2005-03-13* tree-cfg.c (group_case_labels): Remove local variable type.Kazu Hirata1-2/+1
From-SVN: r96374
2005-03-12tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.Steven Bosscher1-6/+3
* tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node. * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it. * tree-ssa-operands.c (get_expr_operands): Likewise. (get_expr_operands): Likewise for ERROR_MARK. From-SVN: r96351
2005-03-11basic-block.h (single_succ_p, [...]): New inline functions.Zdenek Dvorak1-35/+37
* basic-block.h (single_succ_p, single_pred_p, single_succ_edge, single_pred_edge, single_succ, single_pred): New inline functions. * bb-reorder.c (rotate_loop, find_traces_1_round, add_labels_and_missing_jumps, fix_up_fall_thru_edges, duplicate_computed_gotos): Use the single_succ/pred functions. * cfganal.c (forwarder_block_p): Ditto. * cfgbuild.c (compute_outgoing_frequencies): Ditto. * cfgcleanup.c (try_simplify_condjump, try_forward_edges, outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg, merge_seq_blocks): Ditto. * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto. * cfglayout.c (fixup_reorder_chain): Ditto. * cfgloop.c (mark_single_exit_loops, update_latch_info, canonicalize_loop_headers, verify_loop_structure): Ditto. * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge, mfb_update_loops, create_preheader, force_single_succ_latches, create_loop_notes): Ditto. * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump, force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge, commit_one_edge_insertion, purge_dead_edges, cfg_layout_can_merge_blocks_p): Ditto. * except.c (sjlj_emit_function_enter): Ditto. * flow.c (init_propagate_block_info): Ditto. * function.c (thread_prologue_and_epilogue_insns): Ditto. * gcse.c (find_implicit_sets, bypass_conditional_jumps, insert_insn_end_bb): Ditto. * ifcvt.c (merge_if_block, find_if_block, find_if_case_1, find_if_case_2): Ditto. * lambda-code.c (perfect_nestify): Ditto. * lcm.c (optimize_mode_switching): Ditto. * loop-doloop.c (doloop_modify): Ditto. * loop-init.c (loop_optimizer_init): Ditto. * loop-iv.c (simplify_using_initial_values): Ditto. * loop-unroll.c (unroll_loop_runtime_iterations): Ditto. * loop-unswitch.c (unswitch_loop): Ditto. * modulo-sched.c (generate_prolog_epilog): Ditto. * predict.c (combine_predictions_for_insn, estimate_probability, tree_estimate_probability, last_basic_block_p, estimate_bb_frequencies): Ditto. * profile.c (branch_prob): Ditto. * regrename.c (copyprop_hardreg_forward): Ditto. * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto. * tracer.c (layout_superblocks): Ditto. * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks, cfg_remove_useless_stmts_bb, cleanup_control_flow, cleanup_control_expr_graph, disband_implicit_edges, tree_find_edge_insert_loc, bsi_commit_edge_inserts, tree_verify_flow_info, tree_make_forwarder_block, tree_forwarder_block_p, remove_forwarder_block, remove_forwarder_block_with_phi, merge_phi_nodes): Ditto. * tree-if-conv.c (tree_if_conversion): Ditto. * tree-mudflap.c (mf_build_check_statement_for): Ditto. * tree-ssa-dce.c (remove_dead_stmt): Ditto. * tree-ssa-dom.c (dom_opt_finalize_block): Ditto. * tree-ssa-loop-ch.c (should_duplicate_loop_header_p, copy_loop_headers): Ditto. * tree-ssa-loop-im.c (loop_commit_inserts): Ditto. * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto. * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos, lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto. * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto. * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto. * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto. * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto. * tree-ssa-threadupdate.c (redirect_edges): Ditto. * tree-tailcall.c (independent_of_stmt_p, find_tail_calls, eliminate_tail_call, tree_optimize_tail_calls_1): Ditto. * tree-vect-analyze.c (vect_analyze_loop_form): Ditto. * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto. * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard, slpeel_add_loop_guard): Ditto. From-SVN: r96292
2005-03-10Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.Zdenek Dvorak1-0/+55
* Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence. * cfgloop.c (flow_loop_nodes_find): Export. * cfgloop.h (flow_loop_nodes_find, fix_loop_structure): Declare. * cfgloopmanip.c (fix_loop_structure): New function. * predict.c (predict_loops): Clean up the loops information. * tree-cfg.c (cleanup_tree_cfg_loop): New function. (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect loop structure. * tree-flow.h (cleanup_tree_cfg_loop): Declare. (rewrite_into_loop_closed_ssa): Declaration changed. * tree-loop-linear.c (linear_transform_loops): Add argument to rewrite_into_loop_closed_ssa call. * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. * tree-ssa-loop-im.c (move_computations): Ditto. * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto. * tree-vectorizer.c (vectorize_loops): Ditto. * tree-optimize.c: Include cfgloop.h. (execute_todo): Choose whether to call cleanup_tree_cfg or cleanup_tree_cfg_loop. * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables, (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call. * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable cleanup_tree_cfg_loop call. * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function. (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support work on part of cfg. From-SVN: r96232
2005-03-08tree-cfg.c (cleanup_control_flow): If removal of a computed goto results in ↵Jeff Law1-1/+10
the removal of edges in the CFG... * tree-cfg.c (cleanup_control_flow): If removal of a computed goto results in the removal of edges in the CFG, then we need to recompute dominators. From-SVN: r96160
2005-03-07tree-cfg.c (find_taken_edge_computed_goto): New function.Jeff Law1-2/+77
* tree-cfg.c (find_taken_edge_computed_goto): New function. (find_taken_edge): Call find_taken_edge_computed_goto as appropriate. Allow any gimple invariant rather than just INTEGER_CST for VAL. (cleanup_control_flow): Cleanup a computed goto which has turned into a simple goto. (tree_merge_blocks): If block B has any forced labels, move them to the start of block A. * tree-ssa-dom.c (thread_across_edge): Allow threading across computed gotos as well. * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle removal of unnecessary computed gotos too. (lookup_redirection_data): Fix type of INSERT argument. Callers updated. From-SVN: r96084
2005-03-07Various fixes to allow us to again build if --enable-mapped-location:Per Bothner1-5/+10
* c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of unavailable annotate_with_file_line, if USE_MAPPED_LOCATION. * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of local variable loc. Change logic appropriately. * tree-vect-transform.c (vect_finish_stmt_generation): Use EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION. * c-parser.c (c_parser_for_statement): Initialize loc variable. * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues. From-SVN: r96045
2005-03-05tree-phinodes.c (remove_phi_node): Drop the last argument.Kazu Hirata1-1/+1
* tree-phinodes.c (remove_phi_node): Drop the last argument. * tree-flow.h: Adjust the prototype for remove_phi_node. * lambda-code.c (perfect_nestify): Adjust a call to remove_phi_node. * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block): Likewise. * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form): Likewise. * tree-ssa-dce.c (remove_dead_phis): Likewise. * tree-ssa-loop-ivopts.c (remove_statement): Likewise. * tree-ssa-pre.c (remove_dead_inserted_code): Likewise. * tree-ssa.c (kill_redundant_phi_nodes): Likewise. From-SVN: r95932
2005-03-03tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code with LABEL_EXPR.Kazu Hirata1-8/+4
* tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code with LABEL_EXPR. From-SVN: r95831
2005-02-28calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.Kazu Hirata1-2/+2
* calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN. (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and REG_ALWAYS_RETURN. * cfgrtl.c (need_fake_edge_p): Likewise. * combine.c (distribute_notes): Likewise. * emit-rtl.c (try_split): Likewise. * recog.c (peephole2_opimize): Likewise. * reg-notes.def (ALWAYS_RETURN): Remove. * rtl.h (LCT_ALWAYS_RETURN): Remove. * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN. * tree.h (ECF_ALWAYS_RETURN): Remove. From-SVN: r95690
2005-02-21tree-cfg.c (fold_cond_expr_cond): New.Kazu Hirata1-14/+30
* tree-cfg.c (fold_cond_expr_cond): New. (make_edges): Call fold_cond_expr_cond. (find_taken_edge): Accept nothing but INTEGER_CST. (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0 and 1. (find_taken_edge_switch_expr): Remove a check for INTEGER_CST. From-SVN: r95339
2005-02-17bitmap.h (BITMAP_XMALLOC, [...]): Remove.Nathan Sidwell1-1/+1
* bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove. * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and BITMAP_FREE. * bt-load.c (btr_def_live_range, combine_btr_defs, migrate_btr_def, migrate_btr_defs): Likewise. * cfgcleanup.c (thread_jump): Likewise. * cfgloop.c (get_loop_body_in_bfs_order): Likewise. * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute, df_rd_local_compute, df_reg_info_compute): Likewise. * dominance.c (init_dom_info, free_dom_info): Likewise. * flow.c (init_propagate_block_info, free_propagate_block_info): Likewise. * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise. * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav, modify_reg_pav): Likewise. * loop-invariant.c (find_defs, find_invariant_insn, find_invariants, free_inv_motion_data): Likewise. * predict.c (tree_predict_by_opcode, estimate_bb_frequencies): Likewise. * stmt.c (expand_case): Likewise. * tree-cfg.c (tree_duplicate_sese_region): Likewise. * tree-dfa.c (mark_new_vars_to_rename): Likewise. * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise. * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free, get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa, rewrite_ssa_into_ssa): Likewise. * tree-optimize.c (tree_rest_of_compilation): Likewise. * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table, analyze_edges_for_bb, perform_edge_inserts): Likewise. * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise. * tree-sra.c (tree_sra): Likewise. * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise. * tree-ssa-ccp.c (ccp_fold_builtin): Likewise. * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise. * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. * tree-ssa-dse.c (tree_ssa_dse): Likewise. * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var): Likewise. * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info, calculate_live_on_entry, calculate_live_on_exit, build_tree_conflict_graph): Likewise. * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use, record_important_candidates, set_use_iv_cost, find_depends, determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data, tree_ssa_iv_optimize_finalize): Likewise. * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit, find_uses_to_rename_use, rewrite_into_loop_closed_ssa, tree_duplicate_loop_to_header_edge): Likewise. * tree-ssa-pre.c (init_pre, fini_pre): Likewise. * tree-ssa.c (verify_flow_insensitive_alias_info, verify_name_tags, verify_ssa, init_tree_ssa, delete_tree_ssa): Likewise. * tree-ssanames.c (marked_ssa_names, init_ssanames, fini_ssanames): Likewise. * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise. From-SVN: r95172
2005-02-02re PR tree-optimization/19578 (function pointer propagation fails for ↵Richard Sandiford1-5/+19
noreturn functions (part 2)) PR tree-optimization/19578 * tree-flow.h (modified_noreturn_calls): Declare. (noreturn_call_p): Declare. * tree-flow-inline.h (noreturn_call_p): New function. (modify_stmt): Add modified noreturn calls to modified_noreturn_calls. * tree-cfg.c (modified_noreturn_calls): New variable. (cleanup_control_flow): Use noreturn_call_p. Split basic blocks that contain a mid-block noreturn call. * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls. From-SVN: r94610
2005-02-01re PR tree-optimization/19217 (ICE: verify_stmts failed: address taken, but ↵Steven Bosscher1-2/+14
ADDRESSABLE bit not set) PR tree-optimization/19217 * tree-cfg.c (verify_expr): Use the data field to see if TP was seen inside a PHI node. Do not do the ADDR_EXPR check if it was. (verify_stmts): Pass (void*)1 as data to verify_expr to signal that it is walking a PHI node. From-SVN: r94570
2005-01-22re PR tree-optimization/19484 (function pointer propagation fails for ↵Richard Sandiford1-1/+29
noreturn functions) PR tree-optimization/19484 * tree-cfg.c (remove_fallthru_edge): New function. (cleanup_control_flow): Remove fallthru edges from calls that are now known not to return. From-SVN: r94070
2005-01-22tree-cfg.c (remove_forwarder_block_with_phi): Look at the first label to see ↵Kazu Hirata1-11/+6
if it is a nonlocal label. * tree-cfg.c (remove_forwarder_block_with_phi): Look at the first label to see if it is a nonlocal label. From-SVN: r94067
2005-01-21re PR tree-optimization/13000 ([unit-at-a-time] Using -O2 cannot detect ↵Ian Lance Taylor1-0/+2
missing return statement in a function) PR tree-optimization/13000 * tree-inline.c: Include "tree-flow.h". (expand_call_inline): If warn_return_type, warn if non-void inline function falls through. * tree-cfg.c (execute_warn_function_return): Don't warn about control reaching end if TREE_NO_WARNING is set. Set TREE_NO_WARNING. * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR has been lowered. * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else branch if we don't need one. * c-typeck.c: Include "tree-flow.h" (c_finish_bc_stmt): Don't add a goto if the current statement list doesn't fall through to the current point. From-SVN: r94024
2005-01-21* tree-cfg.c: Fix comment typos.Kazu Hirata1-4/+4
From-SVN: r94016
2005-01-20* tree-cfg.c (tree_verify_flow_info): Fix a typo.Kazu Hirata1-1/+1
From-SVN: r93995
2005-01-20tree-cfg.c (tree_verify_flow_info): Check that a nonlocal label is first in ↵Kazu Hirata1-5/+18
a sequence of labels. * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal label is first in a sequence of labels. From-SVN: r93993
2005-01-20re PR tree-optimization/15349 ([tree-ssa] Merge two phi nodes.)Kazu Hirata1-8/+212
PR tree-optimization/15349 * timevar.def (TV_TREE_MERGE_PHI): New. * tree-cfg.c (tree_forwarder_block_p): Add a new argument PHI_WANTED. (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the calls to tree_forwarder_block_p. (remove_forwarder_block_with_phi, merge_phi_nodes, gate_merge_phi, pass_merge_phi): New. * tree-optimize.c (init_tree_optimization_passes): Add pass_merge_phi. * tree-pass.h: Add an extern for pass_merge_phi; PR tree-optimization/15349 * testsuite/gcc.dg/tree-ssa/pr15349.c: New. From-SVN: r93977
2005-01-19tree-cfg.c (remove_forwarder_block): Fix the check to prevent a nonlocal ↵Kazu Hirata1-1/+1
label from appearing in the middle of a... * tree-cfg.c (remove_forwarder_block): Fix the check to prevent a nonlocal label from appearing in the middle of a basic block. From-SVN: r93917
2005-01-17tree-cfg.c (tree_forwarder_block_p): Speed up by walking through the ↵Kazu Hirata1-3/+3
statements backward. * tree-cfg.c (tree_forwarder_block_p): Speed up by walking through the statements backward. From-SVN: r93768
2005-01-17* tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.Kazu Hirata1-3/+3
From-SVN: r93767
2005-01-01re PR middle-end/17544 (incorrect -Wunreachable-code warning for mains with ↵Steven Bosscher1-5/+14
a return statement) * emit-rtl.c (add_insn_before): Fix comment typo. PR middle-end/17544 * c-decl.c (finish_function): If compiling C99, annotate the compiler generated return with the current file name and line 0. * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if the source line is greater than 0. (remove_bb): Likewise. cp/ PR middle-end/17544 * decl.c (finish_function): Fix comment. Annotate the compiler generated return with the current file name and line 0. testsuite/ * gcc.dg/20041231-1.C: New test. * g++.dg/warn/Wunreachable-code-1.C: New test. From-SVN: r92784
2004-12-13tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND.Andrew Pinski1-1/+1
2004-12-13 Andrew Pinski <pinskia@physics.uc.edu> * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND. From-SVN: r92093
2004-12-13defaults.h, [...]: Fix comment typos.Kazu Hirata1-4/+4
* defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment typos. From-SVN: r92092
2004-12-10re PR middle-end/18903 (ice in bsi_after_labels)Andrew Pinski1-2/+2
2004-12-10 Andrew Pinski <pinskia@physics.uc.edu> PR middle-end/18903 * gcc.c-torture/compile/pr18903.c: New test. 2004-12-10 Andrew Pinski <pinskia@physics.uc.edu> PR middle-end/18903 * tree-cfg.c (remove_bb): Put the moved label at the beginning of the basic block. From-SVN: r92006
2004-12-06re PR tree-optimization/18601 (tree cfglceanup is slow)Zdenek Dvorak1-236/+139
PR tree-optimization/18601 * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed. (tree_forwarder_block_p): Do not consider blocks that are its own successors forwarders. (cleanup_forwarder_blocks, remove_forwarder_block): New functions. (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of thread_jumps. * tree-flow.h (bb_ann_d): Remove forwardable. Co-Authored-By: Kazu Hirata <kazu@cs.umass.edu> From-SVN: r91787
2004-12-02* tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.Kazu Hirata1-1/+1
From-SVN: r91648
2004-12-02tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF is not null.Kazu Hirata1-4/+5
* tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF is not null. From-SVN: r91647
2004-12-02tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF is not null.Kazu Hirata1-9/+7
* tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF is not null. From-SVN: r91646
2004-11-29expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.Richard Henderson1-5/+2
* expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR. (handled_component_p): Likewise. * alias.c (can_address_p): Reformat and simplify. Handle REAL/IMAGPART_EXPR. Do not disable addressability based on alias set zero. * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate check for REAL/IMAGPART_EXPR. * gimplify.c (gimplify_compound_lval): Likewise. * tree-cfg.c (verify_expr): Likewise. * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise. * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise. (convert_local_reference): Likewise. * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise. From-SVN: r91511
2004-11-29* tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.Richard Henderson1-1/+1
From-SVN: r91490
2004-11-29re PR middle-end/18725 (another ICE on trivial invalid asm)Andrew Pinski1-1/+2
2004-11-29 Andrew Pinski <pinskia@physics.uc.edu> PR middle-end/18725 * gcc.dg/pr18725.c: New test. 2004-11-29 Andrew Pinski <pinskia@physics.uc.edu> PR middle-end/18725 * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be shared always. From-SVN: r91487
2004-11-29tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge only when needed.Kazu Hirata1-1/+1
* tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge only when needed. From-SVN: r91476
2004-11-27tree.c (operand_equal_for_phi_arg_p): New.Kazu Hirata1-1/+1
* tree.c (operand_equal_for_phi_arg_p): New. * tree.h: Add a prototype for operand_equal_for_phi_arg_p. * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c: Replace operand_equal_p with operand_for_phi_arg_p appropriately. From-SVN: r91385
2004-11-27tree-cfg.c (cleanup_tree_cfg): Also return true if blocks are merged.Jeff Law1-1/+1
* tree-cfg.c (cleanup_tree_cfg): Also return true if blocks are merged. From-SVN: r91376
2004-11-26* tree-cfg.c (tree_split_edge): Speed up by using find_edge.Kazu Hirata1-7/+3
From-SVN: r91341
2004-11-25tree-phinodes.c (add_phi_arg): Take "tree" instead of "tree *" as the first ↵Kazu Hirata1-6/+6
argument. * tree-phinodes.c (add_phi_arg): Take "tree" instead of "tree *" as the first argument. * tree-flow.h: Update the prototype of add_phi_arg. * lambda-code.c, tree-cfg.c, tree-into-ssa.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c, tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c, tree-vectorizer.c: Update all call sites of add_phi_arg. From-SVN: r91307
2004-11-25tree-cfg.c (tree_verify_flow_info): Do not terminate error() message with \n.Gerald Pfeifer1-1/+1
* tree-cfg.c (tree_verify_flow_info): Do not terminate error() message with \n. From-SVN: r91291
2004-11-23tree-cfg.c (tree_forwarder_block_p): Speed up by reordering two checks.Kazu Hirata1-3/+3
* tree-cfg.c (tree_forwarder_block_p): Speed up by reordering two checks. From-SVN: r91108
2004-11-23function.h (struct function): Remove calls_longjmp.Zack Weinberg1-4/+3
* function.h (struct function): Remove calls_longjmp. (current_function_calls_longjmp): Delete. * tree.h (ECF_LONGJMP): Delete. (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN) (ECF_LIBCALL_BLOCK): Everybody slide down one. (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments. * builtins.c (expand_builtin_longjmp): Don't set current_function_calls_longjmp. * calls.c (special_function_p): Mark longjmp and siglongjmp with ECF_NORETURN, not ECF_LONGJMP. (emit_call_1, expand_call, emit_library_call_value_1): Don't check for ECF_LONGJMP. * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt) (need_fake_edge_p): Likewise. * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP. * system.h: Poison NON_SAVING_SETJMP. * function.c (use_register_for_decl) * gcse.c (compute_hash_table_work, compute_store_table) * postreload-gcse.c (record_opr_changes) * reload.c (find_equiv_reg) * reload1.c (reload) * config/i386/i386.c (ix86_can_use_return_insn_p): Remove code conditional on NON_SAVING_SETJMP. * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP. * config/i386/sysv3.h: Delete file. * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete. From-SVN: r91101
2004-11-23tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up by restricting to ↵Kazu Hirata1-8/+6
the case with two outgoing edges. * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up by restricting to the case with two outgoing edges. From-SVN: r91098
2004-11-23tree-cfg.c (tree_execute_on_growing_pred): New.Kazu Hirata1-1/+13
* tree-cfg.c (tree_execute_on_growing_pred): New. (tree_cfg_hooks): Add tree_execute_on_growing_pred. * tree-flow.h: Add a prototype for reserve_phi_args_for_new_edge. * tree-phinodes.c (reserve_phi_args_for_new_edge): New. (add_phi_arg): Don't resize a PHI array. From-SVN: r91075
2004-11-22tree-ssa.c (ssa_remove_edge): Remove.Kazu Hirata1-3/+3
* tree-ssa.c (ssa_remove_edge): Remove. * tree-flow.h: Remove the corresponding prototype. * tree-cfg.c: Replace ssa_remove_edge with remove_edge. * basic-block.h: Likewise. * tree-if-conv.c: Likewise. * tree-ssa-threadupdate.c: Likewise. From-SVN: r91039