aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-pass.h
AgeCommit message (Collapse)AuthorFilesLines
2004-08-17tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees.Dorit Naishlos1-0/+1
* tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees. * tree-vectorizer.h: New File: Same. * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files. * common.opt (ftree-vectorize): New flag to enable vectorization. * timevar.def (TV_TREE_VECTORIZATION): New dump file for vectorization pass. * tree-data-ref.h (init_data_ref): Additional argument. (array_base_name_differ_p): Moved to tree-data-ref.c. * tree-data-ref.c (array_base_name_differ_p): Revised. (initialize_data_dependence_relation): Call array_base_name_differ_p with an extra argument. (analyze_all_data_dependences): Same. (init_data_ref): Additional argument is_read to set DR_IS_READ. * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this file. * tree-flow.h (vectorize_loops, empty_block_p): Add declaration. * tree-optimize.c (pass_vectorize): Schedule the vectorization pass. * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new vectorization pass. * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize. (tree_ssa_loop_done): Call scev_finalize. (tree_vectorize): Define the new vectorization pass. * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the size of the vector they support (until support for multiple vector sizes is added to the vectorizer). * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define. * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define. * invoke.texi (fdump-tree-vect, ftree-vectorize): Add documentation. From-SVN: r86131
2004-07-28tree-optimize.c (init_tree_optimization_passes): Schedule pass_may_alias ↵Diego Novillo1-0/+1
right after the program is renamed into SSA. * tree-optimize.c (init_tree_optimization_passes): Schedule pass_may_alias right after the program is renamed into SSA. * tree-pass.h (PROP_alias): Define. * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias. * tree-sra.c (pass_sra): Likewise. * tree-ssa-ccp.c (pass_ccp): Likewise. * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise. * tree-ssa-dce.c (pass_dce): Likewise. * tree-ssa-dom.c (pass_dominator): Likewise. * tree-ssa-dse.c (pass_dse): Likewise. * tree-ssa-forwprop.c (pass_forwprop): Likewise. * tree-ssa-loop-ch.c (pass_ch): Likewise. * tree-ssa-phiopt.c (pass_phiopt): Likewise. * tree-ssa-pre.c (pass_pre): Likewise. * tree-tailcall.c (pass_tail_recursion): Likewise. * tree-ssa.c (pass_redundant_phi): Likewise. * tree-ssa-alias.c (aliases_computed_p): Remove. Update all users. (init_alias_info): Do not mark all type tags for renaming unconditionally. Clear may_aliases from every symbol. (setup_pointers_and_addressables): If a pointer has not been dereferenced and it had a type tag, clear it and mark the old tag for renaming. testsuite/ChangeLog * gcc.dg/tree-ssa/20030714-2.c: Adjust number of expected conditionals. * gcc.dg/tree-ssa/20031022-1.c: Adjust number of expected loads. * gcc.dg/tree-ssa/ssa-dom-cse-1.c: Expect optimization in DOM1. From-SVN: r85255
2004-07-27tree-optimize.c (register_one_dump_file): Update condition that uses ↵Brian Booth1-1/+1
static_pass_number. * tree-optimize.c (register_one_dump_file): Update condition that uses static_pass_number. (dup_pass_1): Replace with... (next_pass_1): This. (NEXT_PASS): Call next_pass_1. (DUP_PASS): Remove. (init_tree_optimization_passes): Remove uses of DUP_PASS. (execute_one_pass): Update condition that uses static_pass_number. * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed integer. From-SVN: r85226
2004-07-22tree-cfg.c (gimplify_val): Move from tree-complex.c.Paolo Bonzini1-1/+2
2004-07-22 Paolo Bonzini <bonzini@gnu.org> * tree-cfg.c (gimplify_val): Move from tree-complex.c. (gimplify_build1): Move from tree-complex.c do_unop. (gimplify_build2): Move from tree-complex.c do_binop. (gimplify_build3): New. * tree-complex.c (gimplify_val, do_unop, do_binop): Remove. Adjust throughout to call the functions above. * tree-flow.h: Declare the functions above. * tree-nested.c (gimplify_val): Rename to... (tsi_gimplify_val): ... this. * Makefile.in (tree_complex.o): Update dependencies. (stor-layout.o): Depend on regs.h. * c-common.c (handle_vector_size_attribute): Update for vector types without corresponding vector modes. * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if a corresponding vector mode is not available. * print-tree.c (print_node): Print nunits for vector types * regclass.c (have_regs_of_mode): New. (init_reg_sets_1): Initialize it and use it instead of allocatable_regs_of_mode. * regs.h (have_regs_of_mode): Declare it. * stor-layout.c (layout_type): Pick a mode for vector types. * tree-complex.c (build_word_mode_vector_type, tree_vec_extract, build_replicated_const, do_unop, do_binop, do_plus_minus, do_negate, expand_vector_piecewise, expand_vector_parallel, expand_vector_addition, expand_vector_operations_1, expand_vector_operations, tree_lower_operations, pass_lower_vector_ssa, pass_pre_expand): New. (expand_complex_operations, pass_lower_complex): Remove. * tree-optimize.c (init_tree_optimization_passes): Adjust pass ordering for changes in tree-complex.c. * tree-pass.h: Declare new passes. * tree.c (finish_vector_type): Remove. (make_vector_type): New. (build_vector_type_for_mode, build_vector_type): Rewritten. * tree.def (VECTOR_TYPE): Document where the number of subparts is stored. * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field. (make_vector): Remove declaration. From-SVN: r85039
2004-07-10tree-ssa-loop-im.c: New file.Zdenek Dvorak1-0/+1
* tree-ssa-loop-im.c: New file. * Makefile.in (tree-ssa-loop-im.o): Add. * cfgloop.c (superloop_at_depth): New function. * cfgloop.h (superloop_at_depth): Declare. * common.opt (ftree-lim): New flag. * expr.c (array_ref_up_bound): New function. * params.def (PARAM_LIM_EXPENSIVE): New parameter. * timevar.def (TV_LIM): New timevar. * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when computing immediate uses of a phi node. * tree-flow.h (struct tree_ann_common_d): Add aux field. (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare. * tree-optimize.c (init_tree_optimization_passes): Add pass_lim. * tree-pass.h (pass_lim): Declare. * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New functions. (pass_lim): New pass structure. * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly. * tree.c (in_array_bounds_p): New function. * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs. (in_array_bounds_p, array_ref_up_bound): Declare. * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document. * doc/passes.texi (tree-ssa-loop-im.c): Document. From-SVN: r84441
2004-06-30common.opt (ftree-loop-optimize): New flag.Zdenek Dvorak1-0/+2
* common.opt (ftree-loop-optimize): New flag. * tree-flow.h (kill_redundant_phi_nodes): Declare. * tree-optimize.c (init_tree_optimization_passes): Add pass_loop. * tree-pass.h (pass_loop_init, pass_loop_done): Declare. * tree-ssa-loop.c (current_loops): New variable. (tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init, tree_ssa_loop_done): New functions. (pass_loop, pass_loop_init, pass_loop_done): New passes. * tree-ssa.c (kill_redundant_phi_nodes): Export. * doc/invoke.texi (-ftree-loop-optimize): Document. From-SVN: r83933
2004-06-28common.opt (ftree-fre): New flag.Diego Novillo1-0/+1
* common.opt (ftree-fre): New flag. * flags.h (flag_tree_fre): Declare. * opts.c (decode_options): Set. * timevar.def (TV_TREE_FRE): Define. * tree-flow-inline.h (may_propagate_copy): Re-arrange for readability. Handle destinations that are not SSA_NAMEs. * tree-flow.h (struct ptr_info_def): Move from tree.h (cprop_into_stmt, cprop_into_successor_phis): Remove. (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add vuse_optype parameter. * tree-pass.h (pass_fre): Declare. * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c (cprop_into_stmt): Likewise. (cprop_into_successor_phis): Likewise. * tree-ssa-dom.c (eliminate_redundant_computations): Fix argument ordering in call to may_propagate_copy. * tree-ssa-pre.c (is_undefined_value): Assume hard registers to be always defined. (add_to_sets): New local function. (create_value_expr_from): New local function. (compute_avail): Call them. (eliminate): Don't ignore statements with virtual operands. (init_pre): New local function. (fini_pre): New local function. (execute_pre): Call them. Add argument DO_FRE. Don't do insertion if DO_FRE is true. (do_pre): New function. (do_fre): New function. (gate_fre): New function. (pass_fre): Declare. * tree-ssa.c (init_tree_ssa): Don't call vn_init. (delete_tree_ssa): Don't call vn_delete. * tree-vn.c (val_expr_pair_d): Add documentation. (vn_compute): Add VUSES argument to incorporate in computing hash values. Update all callers. (expressions_equal_p): Call operand_equal_p with OEP_PURE_SAME. (vn_add): Add VUSES argument. Update all callers. (vn_lookup): Likewise. (vn_lookup_or_add): Likewise. * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre. From-SVN: r83837
2004-06-16coverage.c: Remove argument to rest_of_compilation.Paolo Bonzini1-0/+6
gcc/ChangeLog: 2004-06-16 Paolo Bonzini <bonzini@gnu.org> * coverage.c: Remove argument to rest_of_compilation. * expr.c (execute_expand, set_save_expr_context, pass_expand): New. * passes.c (rest_of_compilation): Remove argument. (pass_rest_of_compilation): New. (rest_of_handle_final, rest_of_handle_delay_slots, rest_of_handle_stack_regs, rest_of_handle_variable_tracking rest_of_handle_machine_reorg, rest_of_handle_regrename rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2 rest_of_handle_regmove, rest_of_handle_tracer rest_of_handle_if_conversion, rest_of_handle_if_after_combine rest_of_handle_web, rest_of_handle_branch_prob rest_of_handle_value_profile_transformations, rest_of_handle_cfg rest_of_handle_addressof, rest_of_handle_jump_bypass rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2): Check that the two arguments are actually superfluous. * toplev.h (rest_of_compilation): Adjust prototype. * tree-optimize.c (register_dump_files): Add properties argument. Track validity of passes. Only initialize dump files for tree-based passes. Store the full set of provided passes in the pass. (init_tree_optimization_passes): Register pass_expand and pass_rest_of_compilation. (execute_one_pass): Do not track the presence of required properties here. Set in_gimple_form. Do not update current_properties. (current_properties): Remove. (set_save_expr_context): Remove. (tree_rest_of_compilation): Do not set in_gimple_form. Do not expand to RTL here, and do not call rest_of_compilation. Push GGC context even before gimplification. * tree-pass.h (PROP_rtl, PROP_trees): New flags. (pass_expand, pass_rest_of_compilation): Declare. gcc/java/ChangeLog: 2004-06-16 Paolo Bonzini <bonzini@gnu.org> * java/class.c (emit_register_classes): Remove argument to rest_of_compilation. * java/resource.c (write_resource_constructor): Likewise. From-SVN: r83225
2004-05-13Merge tree-ssa-20020619-branch into mainline.Diego Novillo1-0/+130
From-SVN: r81764