GCC Middle and Back End API Reference
tree-ssa-loop.c File Reference

Functions

static bool gate_tree_loop ()
gimple_opt_passmake_pass_tree_loop ()
static unsigned int tree_ssa_loop_init ()
gimple_opt_passmake_pass_tree_loop_init ()
static unsigned int tree_loop_vectorize ()
static bool gate_tree_loop_vectorize ()
gimple_opt_passmake_pass_vectorize ()
static unsigned int check_data_deps ()
static bool gate_check_data_deps ()
gimple_opt_passmake_pass_check_data_deps ()
static bool gate_scev_const_prop ()
gimple_opt_passmake_pass_scev_cprop ()
static unsigned int tree_ssa_loop_bounds ()
gimple_opt_passmake_pass_record_bounds ()
static unsigned int tree_ssa_loop_ivopts ()
static bool gate_tree_ssa_loop_ivopts ()
gimple_opt_passmake_pass_iv_optimize ()
static unsigned int tree_ssa_loop_done ()
gimple_opt_passmake_pass_tree_loop_done ()
bool for_each_index (tree *addr_p, bool(*cbck)(tree, tree *, void *), void *data)
static void lsm_tmp_name_add ()
static void gen_lsm_tmp_name ()
char * get_lsm_tmp_name ()
unsigned tree_num_loop_insns ()

Variables

static char lsm_tmp_name [MAX_LSM_NAME_LENGTH+1]
static int lsm_tmp_name_length

Function Documentation

static unsigned int check_data_deps ( )
static
   Check the correctness of the data dependence analyzers.  

Referenced by gate_check_data_deps().

bool for_each_index ( tree addr_p,
bool(*)(tree, tree *, void *)  cbck,
void *  data 
)
   Calls CBCK for each index in memory reference ADDR_P.  There are two
   kinds situations handled; in each of these cases, the memory reference
   and DATA are passed to the callback:

   Access to an array: ARRAY_{RANGE_}REF (base, index).  In this case we also
   pass the pointer to the index to the callback.

   Pointer dereference: INDIRECT_REF (addr).  In this case we also pass the
   pointer to addr to the callback.

   If the callback returns false, the whole search stops and false is returned.
   Otherwise the function returns true after traversing through the whole
   reference *ADDR_P.  
             If the component has varying offset, it behaves like index
             as well.  

Referenced by detect_commutative_reduction(), and refs_independent_p().

static bool gate_check_data_deps ( )
static
static bool gate_scev_const_prop ( )
static
   Propagation of constants using scev.  
static bool gate_tree_loop ( )
static
@verbatim 

Loop optimizations over tree-ssa. Copyright (C) 2003-2013 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/.

   The loop superpass.  
static bool gate_tree_loop_vectorize ( )
static
static bool gate_tree_ssa_loop_ivopts ( )
static
static void gen_lsm_tmp_name ( )
static
   Stores the name for temporary variable that replaces REF to
   lsm_tmp_name.  
         Nothing.  
char* get_lsm_tmp_name ( )
   Determines name for temporary variable that replaces REF.
   The name is accumulated into the lsm_tmp_name variable.
   N is added to the name of the temporary.  
static void lsm_tmp_name_add ( )
static
   Adds S to lsm_tmp_name.  
gimple_opt_pass* make_pass_check_data_deps ( )
gimple_opt_pass* make_pass_iv_optimize ( )

References GIMPLE_PASS.

gimple_opt_pass* make_pass_record_bounds ( )
gimple_opt_pass* make_pass_scev_cprop ( )
gimple_opt_pass* make_pass_tree_loop ( )
gimple_opt_pass* make_pass_tree_loop_done ( )
gimple_opt_pass* make_pass_tree_loop_init ( )
gimple_opt_pass* make_pass_vectorize ( )
static unsigned int tree_loop_vectorize ( )
static
   Loop autovectorization.  

References cfun, and function::has_force_vect_loops.

Referenced by gate_tree_loop_vectorize().

unsigned tree_num_loop_insns ( )
   Computes an estimated number of insns in LOOP, weighted by WEIGHTS.  

Referenced by tree_ssa_unswitch_loops().

static unsigned int tree_ssa_loop_bounds ( )
static
   Record bounds on numbers of iterations of loops.  

References opt_pass::execute(), gimple_opt_pass::gimple_opt_pass(), and GIMPLE_PASS.

static unsigned int tree_ssa_loop_done ( )
static
   Loop optimizer finalization.  

References opt_pass::execute(), and gimple_opt_pass::gimple_opt_pass().

static unsigned int tree_ssa_loop_init ( )
static
   Loop optimizer initialization.  
     We might discover new loops, e.g. when turning irreducible
     regions into reducible.  
static unsigned int tree_ssa_loop_ivopts ( )
static
   Induction variable optimizations.  

References GIMPLE_PASS.

Referenced by gate_tree_ssa_loop_ivopts().


Variable Documentation

char lsm_tmp_name[MAX_LSM_NAME_LENGTH+1]
static
int lsm_tmp_name_length
static