| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91648 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
is not null.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91647 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
is not null.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91646 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91490 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
only when needed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91476 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
are merged.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91376 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91341 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
"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
|
|
|
|
|
|
|
| |
message with \n.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91291 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
two checks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91108 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
| |
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_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-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_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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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_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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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_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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-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
|
|
|
|
|
|
|
| |
formatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90595 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90360 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
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-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
|
|
|
|
|
|
|
| |
statement that never triggers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90176 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89943 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89941 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
conditions for entering basic blocks into worklist.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89700 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
ENTRY_BLOCK_PTR in worklist.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89699 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
into worklist instead of their indexes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89461 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89381 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
(thread_jumps_from_bb): ... here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89380 138bc75d-0d04-0410-961f-82ee72b054a4
|