aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-phiopt.c
AgeCommit message (Collapse)AuthorFilesLines
2004-08-17tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees.Dorit Naishlos1-2/+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-1/+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-17loop-init.c (loop_optimizer_init, [...]): Do not destroy dominance information.Zdenek Dvorak1-4/+8
* loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not destroy dominance information. * passes.c (rest_of_handle_loop2): Free dominance information. * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before jump threading. (thread_jumps): Update dominance information and remove unreachable blocks. * tree-ssa-phiopt.c (replace_phi_with_stmt): Update dominance information and remove the unreachable block. From-SVN: r84873
2004-06-16tree.h (PHI_CHAIN): New.Steven Bosscher1-1/+1
* tree.h (PHI_CHAIN): New. * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c, tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN when traversing a list of PHI_NODEs. From-SVN: r83273
2004-05-19tree-ssa-phiopt.c (value_replacement): Handle the case where the desired ↵Jeff Law1-0/+13
edge out of COND_BLOCK reaches OTHER_BLOCK... * tree-ssa-phiopt.c (value_replacement): Handle the case where the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than BB directly. From-SVN: r82031
2004-05-18tree-ssa-phiopt.c (abs_replacement): New function.Andrew Pinski1-20/+207
* tree-ssa-phiopt.c (abs_replacement): New function. (empty_block_p): New function extracted from... (candidate_bb_for_phi_optimization): Break out empty block test. (conditional_replacement): Use empty_block_p. (value_replacement): Similarly. * gcc.dg/tree-ssa/20040514-2.c: Update expected output. * gcc.dg/tree-ssa/20040518-2.c: New test. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r82017
2004-05-18Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.Andrew Pinski1-14/+101
* Makefile.in (tree-ssa-phiopt.o): Depends on flags.h. * tree-ssa-phiopt.c: Include flags.h. (conditional_replacement): Remove argument names from prototype. Minor formatting and comment fixes. (tree_ssa_phiopt): If conditional_replacement returns false, then call value_replacement. (value_replacement): New function. * gcc.dg/tree-ssa/20040518-1.c: New test. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r81999
2004-05-18tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted from ↵Jeff Law1-60/+107
conditional_replacement. * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted from conditional_replacement. (candidate_bb_for_phi_optimization): Similarly. (conditional_replacement): Use replace_phi_with_stmt and candidate_bb_for_phi_optimization. From-SVN: r81996
2004-05-18* tree-ssa-phiopt.c: Fix various formatting issues.Jeff Law1-79/+76
From-SVN: r81995
2004-05-14re PR tree-optimization/14466 (missed PHI optimization (different types))Andrew Pinski1-14/+54
2004-05-14 Andrew Pinski <pinskia@physics.uc.edu> PR optimization/14466 * tree-complex.c (make_temp): Remove. (gimplify_val): Replace make_temp with make_rename_temp and add NULL as the second argument. (expand_complex_div_wide): Likewise. * tree-dfa.c (make_rename_temp): New function. * tree-flow.h (make_rename_temp): Declare. * tree-sra.c (make_temp): Remove. (lookup_scalar): Replace make_temp with make_rename_temp. (create_scalar_copies): Likewise. * tree-ssa-phiopt.c (conditional_replacement): When we get non gimple create a temporary variable to hold the casted expression. 2004-05-14 Andrew Pinski <pinskia@physics.uc.edu> PR optimization/14466 * gcc.dg/tree-ssa/20040514-1.c: New test. From-SVN: r81847
2004-05-13Merge tree-ssa-20020619-branch into mainline.Diego Novillo1-0/+306
From-SVN: r81764