summaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
Commit message (Collapse)AuthorAgeFilesLines
* 2004-12-10 Andrew Pinski <pinskia@physics.uc.edu>pinskia2004-12-101-2/+2
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92006 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/18601kazu2004-12-061-236/+139
| | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91787 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.kazu2004-12-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91648 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEFkazu2004-12-021-4/+5
| | | | | | | is not null. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91647 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEFkazu2004-12-021-9/+7
| | | | | | | is not null. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91646 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.rth2004-11-301-5/+2
| | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91511 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.rth2004-11-291-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91490 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-11-29 Andrew Pinski <pinskia@physics.uc.edu>pinskia2004-11-291-1/+2
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91487 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edgekazu2004-11-291-1/+1
| | | | | | | only when needed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91476 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.c (operand_equal_for_phi_arg_p): New.kazu2004-11-271-1/+1
| | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91385 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (cleanup_tree_cfg): Also return true if blockslaw2004-11-271-1/+1
| | | | | | | are merged. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91376 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (tree_split_edge): Speed up by using find_edge.kazu2004-11-261-7/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91341 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-phinodes.c (add_phi_arg): Take "tree" instead ofkazu2004-11-251-6/+6
| | | | | | | | | | | | "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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91307 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (tree_verify_flow_info): Do not terminate error()gerald2004-11-251-1/+1
| | | | | | | message with \n. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91291 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (tree_forwarder_block_p): Speed up by reorderingkazu2004-11-231-3/+3
| | | | | | | two checks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91108 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.h (struct function): Remove calls_longjmp.zack2004-11-231-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91101 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed upkazu2004-11-231-8/+6
| | | | | | | by restricting to the case with two outgoing edges. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91098 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (tree_execute_on_growing_pred): New.kazu2004-11-231-1/+13
| | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91075 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa.c (ssa_remove_edge): Remove.kazu2004-11-221-3/+3
| | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91039 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (tree_execute_on_shrinking_pred): New.kazu2004-11-221-1/+11
| | | | | | | | | (tree_cfg_hooks): Use it. * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args. (ssa_redirect_edge): Don't call remove_phi_arg_num. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91036 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfg.c (unchecked_make_edge): Call execute_on_growing_predkazu2004-11-221-1/+3
| | | | | | | | | | | | | | | | | | | | | after making an edge. (remove_edge): Call execute_on_shrinking_pred before removing an edge. (redirect_edge_succ): Call execute_on_growing_pred and execute_on_shrinking_pred. * cfghooks.c (execute_on_growing_pred): New. (execute_on_shrinking_pred): Likewise. * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and execute_on_shrinking_pred. Add prototypes for execute_on_growing_pred and execute_on_shrinking_pred. * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to execute_on_growing_pred and execute_on_shrinking_pred. (cfg_layout_rtl_cfg_hook): Likewise. * tree-cfg.c (tree_cfg_hooks): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91035 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfg.c (cached_make_edge): Use find_edge rather than an inlinedlaw2004-11-221-21/+12
| | | | | | | | | | | | | | | | variant. * cfgbuild.c (make_edges): Likewise. * cfghooks.c (can_duplicate_block_p): Likewise. * cfgloop.c (loop_latch_edge): Likewise. * cfgloopmanip.c (force_single_succ_latches): Likewise. * cfgrtl.c (rtl_flow_call_edges_add): Likewise. * predict.c (predict_loops, propagate_freq): Likewise. * tracer.c (tail_duplicate): Likewise. * tree-cfg.c (disband_implicit_edges): Likewise. (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91019 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (reinstall_phi_args): New.kazu2004-11-191-17/+26
| | | | | | | | (tree_split_edge): Use it after redirecting an edge. Don't modify PHI_ARG_EDGE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90940 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader.law2004-11-171-100/+158
| | | | | | | | | | | | | | | | | | | | | | | | (edge_to_cases_elt): Renamed from edge_to_case_leader. (edge_to_cases_hash): Renamed from edge_to_case_leader_hash. (edge_to_cases_eq): Renamed from edge_to_case_leader_eq. (edge_to_cases_cleanup, recording_case_labels_p): New functions. (get_cases_for_edge): New function. (start_recording_case_labels, end_recording_case_labels): Similarly. (record_switch_edge): Don't muck with the CASE_LABEL. Instead chain equivalent CASE_LABEL_EXPRs together. (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill. (make_switch_expr_edges): Do not record edge/cases here. (cleanup_tree_cfg): Record cases around the call to thread_jumps. (split_critical_edges): Record cases around the edge splitting code. (cleanup_dead_labels): Use CASE_LABEL again. (tree_redirect_edge_and_branch): If we have a mapping from edge to cases, use it to handle redirections. Else do it the slow way. * tree.h (CASE_LEADER_OR_LABEL): Kill. (CASE_LABEL): Revert to just looking at the tree's second operand. * tree.c (get_case_label): Kill. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90817 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument.kazu2004-11-161-12/+3
| | | | | | | | | | | | | | | | (tree_flow_call_edges_add): Update the call to bsi_commit_edge_inserts. * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. * profile.c (branch_prob): Likewise. * tree-mudflap.c (mf_decl_cache_locals): Likewise. * tree-sra.c (scalarize_function): Likewise. * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. * tree-ssa-pre.c (fini_pre): Likewise. * tree-flow.h: Update the prototype for bsi_commit_edge_inserts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90704 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (verify_expr): Replace TREE_OPERAND withkazu2004-11-161-1/+1
| | | | | | | | | | | | COND_EXPR_COND. * tree-if-conv.c (tree_if_convert_cond_expr): Likewise. * tree-ssa-dom.c (thread_across_edge): Likewise. * tree-vectorizer.c (vect_transform_loop_bound): Replace TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or COND_EXPR_ELSE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90703 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c,kazu2004-11-141-2/+2
| | | | | | | | tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where appropriate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90611 138bc75d-0d04-0410-961f-82ee72b054a4
* * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix commentkazu2004-11-131-3/+3
| | | | | | | formatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90595 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (hashtab.h): Include.law2004-11-131-11/+182
| | | | | | | | | | | | | | | | | | | | | | | (struct edge_to_case_leader_elt): New structure. (edge_to_case_leader): New. (edge_to_case_leader_hash): New hashtable hasing function. (edge_to_case_leader_eq): New hashtable equality function. (record_switch_edge): New function. (get_case_leader_for_edge, get_case_leader_for_edge): New functions. (make_switch_expr_edges): Build the edge-to-case-leader hash table. Tear down the hash table when we're done. (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of CASE_LABEL. (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes. (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update to use new concept of case leaders to reduce overhead of redirecting outgoing edges from switch statements. * tree.c (get_case_label): New function. * tree.h (CASE_LABEL): Define in terms of get_case_label. (CASE_LEADER_OR_LABEL): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90570 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (create_bb): Remove unnecessary memset.kazu2004-11-091-2/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90360 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-phinodes.c (phi_reverse): New.kazu2004-11-091-10/+3
| | | | | | | | | * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb): Use it. * tree-flow.h: Add a prototype for phi_reverse. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90344 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Speed up by keeping a pointer tokazu2004-11-081-8/+5
| | | | | | | the last used element in the worklist. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90314 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,kazu2004-11-081-3/+3
| | | | | | | | | | tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c, tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where appropriate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90262 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"kazu2004-11-061-5/+0
| | | | | | | statement that never triggers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90176 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.kazu2004-11-041-2/+3
| | | | | | | | * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge with VAL being NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90083 138bc75d-0d04-0410-961f-82ee72b054a4
* * bitmap.c (bitmap_print): Make bitno unsigned.nathan2004-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bt-load.c (clear_btr_from_live_range, btr_def_live_range): Likewise. * caller-save.c (save_call_clobbered_regs): Likewise. * cfganal.c (compute_dominance_frontiers_1): Likewise. * cfgcleanup.c (thread_jump): Likewise. * cfgrtl.c (safe_insert_insn_on_edge): Likewise. * conflict.c (conflict_graph_compute): Likewise. * ddg.c (add_deps_for_use): Likewise. * df.c (df_refs_update): Likewise. * except.c (remove_eh_handler): Likewise. * flow.c (verify_local_live_at_start, update_life_info, initialize_uninitialized_subregs, propagate_one_insn, free_propagate_block_info, propagate_block, find_use_as_address, reg_set_to_hard_reg_set): Likewise. * gcse.c (clear_modify_mem_tables): Likewise. * global.c (global_conflicts, build_insn_chain): Likewise. * ifcvt.c (dead_or_predicable): Likewise. * local-alloc.c (update_equiv_regs): Likewise. * loop.c (load_mems): Likewise. * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Likewise. * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill): Likewise. * reload1.c (order_regs_for_reload, finish_spills): Likewise. * sched-deps.c (sched_analyze_insn, free_deps): Likewise. * sched-rgn.c (propagate_deps * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise. * tree-dfa.c (dump_dfa_stats tree-into-ssa.c (compute_global_livein, insert_phi_nodes, insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags): Likewise. * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars, free_temp_expr_table, find_replaceable_exprs): Likewise. * tree-sra.c (scan_function, scalarize_parms): Likewise. * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape, compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise. * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise. * tree-ssa-live.c (new_tree_live_info, live_worklist, calculate_live_on_entry, calculate_live_on_exit, compare_pairs, sort_coalesce_list, build_tree_conflict_graph, dump_live_info tree-ssa-loop-manip.c (add_exit_phis_var): Likewise. tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, add_call_read_ops): Likewise. * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise. * tree-ssa-live.h (num_var_partitions): Return unsigned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90053 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (find_taken_edge): Abort if we are given akazu2004-11-031-4/+4
| | | | | | | statement that is neither COND_EXPR nor SWITCH_EXPR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90015 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-11-01 Andrew MacLeod <amacleod@redhat.com>amacleod2004-11-021-7/+9
| | | | | | | | | | | | | | | | | | | | | PR tree-optimization/16447 * tree-cfg.c (bsi_commit_one_edge_insert): Rename from bsi_commit_edge_inserts_1, and make funtion external. Return new block. (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert. * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing. * tree-flow.h (bsi_commit_one_edge_insert): Extern decl. * tree-outof-ssa.c (rewrite_trees): Don't commit edges here. (same_stmt_list_p): New. Return TRUE if edge is to be forwarded. (identical_copies_p): New. Return true is two copies are the same. (identical_stmt_lists_p): New. Return true if stmt lists are the same. (analyze_edges_for_bb): New. Determine how best to insert edge stmts for a basic block. (perform_edge_inserts): New. Determine what to do with all stmts that have been inserted on edges. (remove_ssa_form): Analyze and commit edges from here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89970 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Fix a comment typo.kazu2004-11-011-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89943 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Fix a comment typo.kazu2004-11-011-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89941 138bc75d-0d04-0410-961f-82ee72b054a4
* * lambda-code.c (nestify_update_pending_stmts): Remove.kazu2004-10-281-12/+3
| | | | | | | | | | | | | | | | | (perfect_nestify): Use flush_pending_stmts instead of nestify_update_pending_stmts. * tree-cfg.c (tree_make_forwarder_block): Use flush_pending_stmts. * tree-flow.h: Add a prototype for flush_pending_stmts. * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): Use flush_pending_stmts. (lv_update_pending_stmts): Remove. (tree_ssa_loop_version): Use flush_pending_stmts instead of lv_update_pending_stmts. * tree-ssa.c (flush_pending_stmts): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89757 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-10-27 Andrew Pinski <pinskia@physics.uc.edu>pinskia2004-10-281-1/+1
| | | | | | | | | | | | | | | PR tree-opt/17529 * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>: Don't fold statement. <case ASM_EXPR>: Fold the statement. 2004-10-27 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/17529 * gcc.c-torture/compile/pr17529.c: Remove the xfail. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89730 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Speed up by reordering the twokazu2004-10-271-10/+10
| | | | | | | conditions for entering basic blocks into worklist. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89700 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Speed up by pretending to havekazu2004-10-271-4/+6
| | | | | | | ENTRY_BLOCK_PTR in worklist. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89699 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-10-27 Daniel Berlin <dberlin@dberlin.org>dberlin2004-10-271-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix PR tree-optimization/17133 * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must def kill operand. * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT. (get_v_must_def_result_ptr): Modify for new structure of v_must_defs array. (get_v_must_def_kill_ptr): New. (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs. (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT. (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT. (op_iter_init): Initialize new mustu members. (op_iter_next_mustdef): New function. (op_iter_init_mustdef): Ditto. * tree-flow.h (rewrite_def_def_chains): New function. * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands. (ssa_mark_def_sites): Ditto. (rewrite_stmt): Ditto. (ssa_rewrite_stmt): Ditto. (rewrite_blocks): Factor out from rewrite_into_ssa. (mark_def_block_sites): Ditto. (rewrite_def_def_chains): New function, just rewrites def-def chains without phi node insertion. * tree-pass.h (TODO_fix_def_def_chains): New todo flag. * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains. * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that they include the rhs now. * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became V_MUST_DEF_RESULT. * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument. Update callers. (mark_really_necessary_kill_operand_phis): New function. (perform_tree_ssa_dce): Call it. (pass_dce): Add TODO_fix_def_def_chains. (pass_cd_dce): Ditto. * tree-ssa-loop-im.c (determine_max_movement): Look at kills as well. (rewrite_mem_refs): Ditto. * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills as well. * tree-ssa-operands.c (allocate_v_may_def_optype): v_may_def_operand_type_t became v_def_use_operand_type_t. (allocate_v_must_def_optype) Ditto. (finalize_ssa_v_must_defs): Update for new operand type, as well as setting the use portion as well. (copy_virtual_operands): Copy the kill operand as well. (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became V_MUST_DEF_RESULT. * tree-ssa-operands.h (v_may_def_operand_type): Renamed to v_def_use_operand_type. (v_must_def_optype_d): Use v_def_use_operand_type. (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_* (V_MUST_DEF_KILL_*): New macros. (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i members. Rename existing must_i and num_v_must members to mustd_i and num_v_mustd. (SSA_OP_VMUSTDEFKILL): New flag. (SSA_OP_VIRTUAL_KILLS): New flag. (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS. (SSA_OP_ALL_KILLS): New flag. (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro. * tree-ssa.c (verify_ssa): Verify virtual kills as well. * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP became V_MUST_DEF_RESULT. (rename_variables_in_bb): Rename kill pointer as well. * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the immediate uses. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89695 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-10-23 Andrew Pinski <pinskia@physics.uc.edu>pinskia2004-10-231-1/+0
| | | | | | | | PR middle-end/17967 * tree-cfg.c (remove_usless_stmts_cond): Don't Fold statement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89492 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps_from_bb): Speed up by extractingkazu2004-10-221-3/+2
| | | | | | | | edge information when we commit ourselves to threading a particular jump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89462 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Speed up by putting basic blockskazu2004-10-221-16/+9
| | | | | | | into worklist instead of their indexes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89461 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Speed up by using a worklist.kazu2004-10-211-18/+85
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89381 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (thread_jumps): Move a part of it to ...kazu2004-10-211-163/+179
| | | | | | | (thread_jumps_from_bb): ... here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89380 138bc75d-0d04-0410-961f-82ee72b054a4