osprey-gcc-4.2.0/gcc/tree-vectorizer.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Types

type  _loop_vec_info
type  _stmt_vec_info

Defines

#define UNKNOWN_LOC   NULL
#define EXPR_LOC(e)   EXPR_LOCUS(e)
#define LOC_FILE(l)   (l)->file
#define LOC_LINE(l)   (l)->line
#define LOOP_VINFO_LOOP(L)   (L)->loop
#define LOOP_VINFO_BBS(L)   (L)->bbs
#define LOOP_VINFO_EXIT_COND(L)   (L)->exit_cond
#define LOOP_VINFO_NITERS(L)   (L)->num_iters
#define LOOP_VINFO_VECTORIZABLE_P(L)   (L)->vectorizable
#define LOOP_VINFO_VECT_FACTOR(L)   (L)->vectorization_factor
#define LOOP_VINFO_PTR_MASK(L)   (L)->ptr_mask
#define LOOP_VINFO_DATAREFS(L)   (L)->datarefs
#define LOOP_VINFO_DDRS(L)   (L)->ddrs
#define LOOP_VINFO_INT_NITERS(L)   (TREE_INT_CST_LOW ((L)->num_iters))
#define LOOP_PEELING_FOR_ALIGNMENT(L)   (L)->peeling_for_alignment
#define LOOP_VINFO_UNALIGNED_DR(L)   (L)->unaligned_dr
#define LOOP_VINFO_MAY_MISALIGN_STMTS(L)   (L)->may_misalign_stmts
#define LOOP_VINFO_LOC(L)   (L)->loop_line_number
#define LOOP_VINFO_NITERS_KNOWN_P(L)
#define STMT_VINFO_TYPE(S)   (S)->type
#define STMT_VINFO_STMT(S)   (S)->stmt
#define STMT_VINFO_LOOP_VINFO(S)   (S)->loop_vinfo
#define STMT_VINFO_RELEVANT_P(S)   (S)->relevant
#define STMT_VINFO_LIVE_P(S)   (S)->live
#define STMT_VINFO_VECTYPE(S)   (S)->vectype
#define STMT_VINFO_VEC_STMT(S)   (S)->vectorized_stmt
#define STMT_VINFO_DATA_REF(S)   (S)->data_ref_info
#define STMT_VINFO_IN_PATTERN_P(S)   (S)->in_pattern_p
#define STMT_VINFO_RELATED_STMT(S)   (S)->related_stmt
#define STMT_VINFO_SAME_ALIGN_REFS(S)   (S)->same_align_refs
#define STMT_VINFO_DEF_TYPE(S)   (S)->def_type
#define DR_MISALIGNMENT(DR)   (DR)->aux
#define VECT_SMODULO(x, y)   ((x) % (y) < 0 ? ((x) % (y) + (y)) : (x) % (y))
#define NUM_PATTERNS   3

Typedefs

typedef source_locus LOC
typedef struct _loop_vec_infoloop_vec_info
typedef struct data_referencedr_p
typedef struct _stmt_vec_infostmt_vec_info
typedef tree(* vect_recog_func_ptr )(tree, tree *, tree *)

Enumerations

enum  vect_var_kind {
  vect_simple_var, vect_pointer_var, vect_simple_var, vect_pointer_var,
  vect_scalar_var
}
enum  operation_type {
  unary_op = 1, binary_op, unary_op = 1, binary_op,
  ternary_op
}
enum  dr_alignment_support {
  dr_unaligned_unsupported, dr_unaligned_supported, dr_unaligned_software_pipeline, dr_aligned,
  dr_unaligned_unsupported, dr_unaligned_supported, dr_unaligned_software_pipeline, dr_aligned
}
enum  vect_def_type {
  vect_constant_def, vect_invariant_def, vect_loop_def, vect_induction_def,
  vect_reduction_def, vect_unknown_def_type
}
enum  verbosity_levels {
  REPORT_NONE, REPORT_VECTORIZED_LOOPS, REPORT_UNVECTORIZED_LOOPS, REPORT_ALIGNMENT,
  REPORT_BAD_FORM_LOOPS, REPORT_OUTER_LOOPS, REPORT_DETAILS, MAX_VERBOSITY_LEVEL,
  REPORT_NONE, REPORT_VECTORIZED_LOOPS, REPORT_UNVECTORIZED_LOOPS, REPORT_ALIGNMENT,
  REPORT_DR_DETAILS, REPORT_BAD_FORM_LOOPS, REPORT_OUTER_LOOPS, REPORT_DETAILS,
  MAX_VERBOSITY_LEVEL
}
enum  stmt_vec_info_type {
  undef_vec_info_type = 0, load_vec_info_type, store_vec_info_type, op_vec_info_type,
  assignment_vec_info_type, undef_vec_info_type = 0, load_vec_info_type, store_vec_info_type,
  op_vec_info_type, assignment_vec_info_type, condition_vec_info_type, reduc_vec_info_type
}

Functions/Subroutines

 DEF_VEC_P (dr_p)
 DEF_VEC_ALLOC_P (dr_p, heap)
static void set_stmt_info (stmt_ann_t ann, stmt_vec_info stmt_info)
static stmt_vec_info vinfo_for_stmt (tree stmt)
static bool aligned_access_p (struct data_reference *data_ref_info)
static bool known_alignment_for_access_p (struct data_reference *data_ref_info)
struct loopslpeel_tree_peel_loop_to_edge (struct loop *, struct loops *, edge, tree, tree, bool)
void slpeel_make_loop_iterate_ntimes (struct loop *, tree)
bool slpeel_can_duplicate_loop_p (struct loop *, edge)
tree get_vectype_for_scalar_type (tree)
bool vect_is_simple_use (tree, loop_vec_info, tree *, tree *, enum vect_def_type *)
bool vect_is_simple_iv_evolution (unsigned, tree, tree *, tree *)
tree vect_is_simple_reduction (struct loop *, tree)
bool vect_can_force_dr_alignment_p (tree, unsigned int)
enum dr_alignment_support vect_supportable_dr_alignment (struct data_reference *)
bool reduction_code_for_scalar_code (enum tree_code, enum tree_code *)
loop_vec_info new_loop_vec_info (struct loop *loop)
void destroy_loop_vec_info (loop_vec_info)
stmt_vec_info new_stmt_vec_info (tree stmt, loop_vec_info)
void vectorize_loops (struct loops *)
loop_vec_info vect_analyze_loop (struct loop *)
void vect_pattern_recog (loop_vec_info)
bool vectorizable_load (tree, block_stmt_iterator *, tree *)
bool vectorizable_store (tree, block_stmt_iterator *, tree *)
bool vectorizable_operation (tree, block_stmt_iterator *, tree *)
bool vectorizable_assignment (tree, block_stmt_iterator *, tree *)
bool vectorizable_condition (tree, block_stmt_iterator *, tree *)
bool vectorizable_live_operation (tree, block_stmt_iterator *, tree *)
bool vectorizable_reduction (tree, block_stmt_iterator *, tree *)
void vect_transform_loop (loop_vec_info, struct loops *)
bool vect_print_dump_info (enum verbosity_levels)
void vect_set_verbosity_level (const char *)
LOC find_loop_location (struct loop *)

Variables

FILEvect_dump
enum verbosity_levels vect_verbosity_level
unsigned int vect_loops_num
bitmap vect_vnames_to_rename


Define Documentation

#define DR_MISALIGNMENT ( DR   )     (DR)->aux

Definition at line 268 of file tree-vectorizer.h.

#define EXPR_LOC (  )     EXPR_LOCUS(e)

Definition at line 34 of file tree-vectorizer.h.

#define LOC_FILE (  )     (l)->file

Definition at line 35 of file tree-vectorizer.h.

#define LOC_LINE (  )     (l)->line

Definition at line 36 of file tree-vectorizer.h.

#define LOOP_PEELING_FOR_ALIGNMENT ( L   )     (L)->peeling_for_alignment

#define LOOP_VINFO_BBS ( L   )     (L)->bbs

Definition at line 140 of file tree-vectorizer.h.

#define LOOP_VINFO_DATAREFS ( L   )     (L)->datarefs

#define LOOP_VINFO_DDRS ( L   )     (L)->ddrs

#define LOOP_VINFO_EXIT_COND ( L   )     (L)->exit_cond

Definition at line 141 of file tree-vectorizer.h.

#define LOOP_VINFO_INT_NITERS ( L   )     (TREE_INT_CST_LOW ((L)->num_iters))

Definition at line 148 of file tree-vectorizer.h.

#define LOOP_VINFO_LOC ( L   )     (L)->loop_line_number

Definition at line 152 of file tree-vectorizer.h.

#define LOOP_VINFO_LOOP ( L   )     (L)->loop

Definition at line 139 of file tree-vectorizer.h.

#define LOOP_VINFO_MAY_MISALIGN_STMTS ( L   )     (L)->may_misalign_stmts

#define LOOP_VINFO_NITERS ( L   )     (L)->num_iters

Definition at line 142 of file tree-vectorizer.h.

#define LOOP_VINFO_NITERS_KNOWN_P ( L   ) 

Value:

(host_integerp ((L)->num_iters,0)                        \
&& TREE_INT_CST_LOW ((L)->num_iters) > 0)

Definition at line 154 of file tree-vectorizer.h.

#define LOOP_VINFO_PTR_MASK ( L   )     (L)->ptr_mask

#define LOOP_VINFO_UNALIGNED_DR ( L   )     (L)->unaligned_dr

Definition at line 150 of file tree-vectorizer.h.

#define LOOP_VINFO_VECT_FACTOR ( L   )     (L)->vectorization_factor

Definition at line 144 of file tree-vectorizer.h.

#define LOOP_VINFO_VECTORIZABLE_P ( L   )     (L)->vectorizable

Definition at line 143 of file tree-vectorizer.h.

#define NUM_PATTERNS   3

Definition at line 349 of file tree-vectorizer.h.

Referenced by vect_pattern_recog().

#define STMT_VINFO_DATA_REF ( S   )     (S)->data_ref_info

Definition at line 239 of file tree-vectorizer.h.

#define STMT_VINFO_DEF_TYPE ( S   )     (S)->def_type

#define STMT_VINFO_IN_PATTERN_P ( S   )     (S)->in_pattern_p

#define STMT_VINFO_LIVE_P ( S   )     (S)->live

#define STMT_VINFO_LOOP_VINFO ( S   )     (S)->loop_vinfo

Definition at line 234 of file tree-vectorizer.h.

#define STMT_VINFO_RELATED_STMT ( S   )     (S)->related_stmt

#define STMT_VINFO_RELEVANT_P ( S   )     (S)->relevant

Definition at line 235 of file tree-vectorizer.h.

#define STMT_VINFO_SAME_ALIGN_REFS ( S   )     (S)->same_align_refs

#define STMT_VINFO_STMT ( S   )     (S)->stmt

Definition at line 233 of file tree-vectorizer.h.

#define STMT_VINFO_TYPE ( S   )     (S)->type

Definition at line 232 of file tree-vectorizer.h.

#define STMT_VINFO_VEC_STMT ( S   )     (S)->vectorized_stmt

Definition at line 238 of file tree-vectorizer.h.

#define STMT_VINFO_VECTYPE ( S   )     (S)->vectype

Definition at line 237 of file tree-vectorizer.h.

#define UNKNOWN_LOC   NULL

Definition at line 33 of file tree-vectorizer.h.

#define VECT_SMODULO ( x,
 )     ((x) % (y) < 0 ? ((x) % (y) + (y)) : (x) % (y))

Definition at line 283 of file tree-vectorizer.h.


Typedef Documentation

Definition at line 171 of file tree-vectorizer.h.

typedef source_locus LOC

Definition at line 32 of file tree-vectorizer.h.

typedef tree(* vect_recog_func_ptr)(tree, tree *, tree *)

In tree-vect-patterns.c

Definition at line 348 of file tree-vectorizer.h.


Enumeration Type Documentation

Enumerator:
dr_unaligned_unsupported 
dr_unaligned_supported 
dr_unaligned_software_pipeline 
dr_aligned 
dr_unaligned_unsupported 
dr_unaligned_supported 
dr_unaligned_software_pipeline 
dr_aligned 

Definition at line 54 of file tree-vectorizer.h.

Enumerator:
unary_op 
binary_op 
unary_op 
binary_op 
ternary_op 

Definition at line 47 of file tree-vectorizer.h.

Enumerator:
undef_vec_info_type 
load_vec_info_type 
store_vec_info_type 
op_vec_info_type 
assignment_vec_info_type 
undef_vec_info_type 
load_vec_info_type 
store_vec_info_type 
op_vec_info_type 
assignment_vec_info_type 
condition_vec_info_type 
reduc_vec_info_type 

Definition at line 161 of file tree-vectorizer.h.

Enumerator:
vect_constant_def 
vect_invariant_def 
vect_loop_def 
vect_induction_def 
vect_reduction_def 
vect_unknown_def_type 

Definition at line 62 of file tree-vectorizer.h.

Enumerator:
vect_simple_var 
vect_pointer_var 
vect_simple_var 
vect_pointer_var 
vect_scalar_var 

Definition at line 40 of file tree-vectorizer.h.

Enumerator:
REPORT_NONE 
REPORT_VECTORIZED_LOOPS 
REPORT_UNVECTORIZED_LOOPS 
REPORT_ALIGNMENT 
REPORT_BAD_FORM_LOOPS 
REPORT_OUTER_LOOPS 
REPORT_DETAILS 
MAX_VERBOSITY_LEVEL 
REPORT_NONE 
REPORT_VECTORIZED_LOOPS 
REPORT_UNVECTORIZED_LOOPS 
REPORT_ALIGNMENT 
REPORT_DR_DETAILS 
REPORT_BAD_FORM_LOOPS 
REPORT_OUTER_LOOPS 
REPORT_DETAILS 
MAX_VERBOSITY_LEVEL 

Definition at line 72 of file tree-vectorizer.h.


Function Documentation

static bool aligned_access_p ( struct data_reference data_ref_info  )  [inline, static]

Definition at line 271 of file tree-vectorizer.h.

References DR_MISALIGNMENT.

DEF_VEC_ALLOC_P ( dr_p  ,
heap   
)

DEF_VEC_P ( dr_p   ) 

void destroy_loop_vec_info ( loop_vec_info   ) 

LOC find_loop_location ( struct loop  ) 

tree get_vectype_for_scalar_type ( tree   ) 

static bool known_alignment_for_access_p ( struct data_reference data_ref_info  )  [inline, static]

loop_vec_info new_loop_vec_info ( struct loop loop  ) 

stmt_vec_info new_stmt_vec_info ( tree  stmt,
loop_vec_info   
)

bool reduction_code_for_scalar_code ( enum  tree_code,
enum tree_code  
)

Definition at line 1769 of file tree-vectorizer.c.

Referenced by vectorizable_reduction().

static void set_stmt_info ( stmt_ann_t  ann,
stmt_vec_info  stmt_info 
) [inline, static]

Definition at line 249 of file tree-vectorizer.h.

bool slpeel_can_duplicate_loop_p ( struct loop ,
edge   
)

void slpeel_make_loop_iterate_ntimes ( struct loop ,
tree   
)

struct loop* slpeel_tree_peel_loop_to_edge ( struct loop ,
struct loops ,
edge  ,
tree  ,
tree  ,
bool   
) [read]

loop_vec_info vect_analyze_loop ( struct loop  ) 

bool vect_can_force_dr_alignment_p ( tree  ,
unsigned  int 
)

bool vect_is_simple_iv_evolution ( unsigned  ,
tree  ,
tree ,
tree  
)

tree vect_is_simple_reduction ( struct loop ,
tree   
)

bool vect_is_simple_use ( tree  ,
loop_vec_info  ,
tree ,
tree ,
enum vect_def_type  
)

void vect_pattern_recog ( loop_vec_info   ) 

bool vect_print_dump_info ( enum  verbosity_levels  ) 

void vect_set_verbosity_level ( const char *   ) 

Definition at line 1084 of file tree-vectorizer.c.

enum dr_alignment_support vect_supportable_dr_alignment ( struct data_reference  ) 

void vect_transform_loop ( loop_vec_info  ,
struct loops  
)

bool vectorizable_assignment ( tree  ,
block_stmt_iterator ,
tree  
)

bool vectorizable_condition ( tree  ,
block_stmt_iterator ,
tree  
)

bool vectorizable_live_operation ( tree  ,
block_stmt_iterator ,
tree  
)

bool vectorizable_load ( tree  ,
block_stmt_iterator ,
tree  
)

bool vectorizable_operation ( tree  ,
block_stmt_iterator ,
tree  
)

bool vectorizable_reduction ( tree  ,
block_stmt_iterator ,
tree  
)

bool vectorizable_store ( tree  ,
block_stmt_iterator ,
tree  
)

void vectorize_loops ( struct loops  ) 

static stmt_vec_info vinfo_for_stmt ( tree  stmt  )  [inline, static]

Definition at line 256 of file tree-vectorizer.h.

References NULL, and stmt_ann().


Variable Documentation

Definition at line 173 of file tree-vectorizer.c.

Referenced by get_vectype_for_scalar_type(), vect_analyze_data_ref_access(), vect_analyze_data_ref_accesses(), vect_analyze_data_ref_dependence(), vect_analyze_data_ref_dependences(), vect_analyze_data_refs(), vect_analyze_data_refs_alignment(), vect_analyze_loop(), vect_analyze_loop_form(), vect_analyze_offset_expr(), vect_analyze_operations(), vect_analyze_pointer_ref_access(), vect_analyze_scalar_cycles(), vect_can_advance_ivs_p(), vect_compute_data_ref_alignment(), vect_create_addr_base_for_vector_ref(), vect_create_data_ref_ptr(), vect_create_epilog_for_reduction(), vect_determine_vectorization_factor(), vect_do_peeling_for_alignment(), vect_do_peeling_for_loop_bound(), vect_enhance_data_refs_alignment(), vect_finish_stmt_generation(), vect_gen_niters_for_prolog_loop(), vect_get_loop_niters(), vect_get_vec_def_for_operand(), vect_init_vector(), vect_is_simple_iv_evolution(), vect_is_simple_reduction(), vect_is_simple_use(), vect_mark_relevant(), vect_mark_stmts_to_be_vectorized(), vect_object_analysis(), vect_pattern_recog(), vect_pattern_recog_1(), vect_print_dump_info(), vect_recog_dot_prod_pattern(), vect_recog_widen_sum_pattern(), vect_set_dump_settings(), vect_stmt_relevant_p(), vect_transform_loop(), vect_transform_stmt(), vect_update_inits_of_drs(), vect_update_ivs_after_vectorizer(), vect_verify_datarefs_alignment(), vectorizable_assignment(), vectorizable_condition(), vectorizable_live_operation(), vectorizable_load(), vectorizable_operation(), vectorizable_reduction(), vectorizable_store(), and vectorize_loops().

unsigned int vect_loops_num

Definition at line 179 of file tree-vectorizer.c.

Referenced by vectorize_loops().


Generated on Wed Apr 8 14:23:06 2009 for Open64 by  doxygen 1.5.6