#include <tree-vectorizer.h>
Field Documentation
The bb_vec_info with respect to which STMT is vectorized.
The following is relevant only for stmts that contain a non-scalar
data-ref (array/pointer/struct access). A GIMPLE stmt is expected to have
at most one such data-ref.
Information about the data-ref (access function, etc),
relative to the inner-most containing loop.
Classify the def of this stmt.
tree _stmt_vec_info::dr_aligned_to |
tree _stmt_vec_info::dr_base_address |
Information about the data-ref relative to this loop
nest (the loop that is being considered for vectorization).
tree _stmt_vec_info::dr_init |
tree _stmt_vec_info::dr_offset |
tree _stmt_vec_info::dr_step |
gimple _stmt_vec_info::first_element |
Interleaving and reduction chains info.
First element in the group.
unsigned int _stmt_vec_info::gap |
For loads only, the gap from the previous load. For consecutive loads, GAP
is 1.
bool _stmt_vec_info::gather_p |
For loads only, true if this is a gather load.
bool _stmt_vec_info::in_pattern_p |
Stmt is part of some pattern (computation idiom)
bool _stmt_vec_info::live |
Indicates whether this stmts is part of a computation whose result is
used outside the loop.
tree _stmt_vec_info::loop_phi_evolution_part |
For loop PHI nodes, the evolution part of it. This makes sure
this information is still available in vect_update_ivs_after_vectorizer
where we may not be able to re-analyze the PHI nodes evolution as
peeling for the prologue loop can make it unanalyzable. The evolution
part is still correct though.
The loop_vec_info with respect to which STMT is vectorized.
gimple _stmt_vec_info::next_element |
Pointer to the next element in the group.
Used to keep a sequence of def stmts of a pattern stmt if such exists.
gimple _stmt_vec_info::related_stmt |
Used for various bookkeeping purposes, generally holding a pointer to
some other stmt S that is in some way "related" to this stmt.
Current use of this field is:
If this stmt is part of a pattern (i.e. the field 'in_pattern_p' is
true): S is the "pattern stmt" that represents (and replaces) the
sequence of stmts that constitutes the pattern. Similarly, the
related_stmt of the "pattern stmt" points back to this stmt (which is
the last stmt in the original sequence of stmts that constitutes the
pattern).
Not all stmts in the loop need to be vectorized. e.g, the increment
of the loop induction variable and computation of array indexes. relevant
indicates whether the stmt needs to be vectorized.
vec<dr_p> _stmt_vec_info::same_align_refs |
List of datarefs that are known to have the same alignment as the dataref
of this stmt.
gimple _stmt_vec_info::same_dr_stmt |
For data-refs, in case that two or more stmts share data-ref, this is the
pointer to the previously detected stmt with the same dr.
bool _stmt_vec_info::simd_lane_access_p |
For both loads and stores.
unsigned int _stmt_vec_info::size |
Whether the stmt is SLPed, loop-based vectorized, or both.
The stmt to which this info struct refers to.
unsigned int _stmt_vec_info::store_count |
For stores, number of stores from this group seen. We vectorize the last
one.
bool _stmt_vec_info::stride_load_p |
bool _stmt_vec_info::vectorizable |
Is this statement vectorizable or should it be skipped in (partial)
vectorization.
gimple _stmt_vec_info::vectorized_stmt |
The vectorized version of the stmt.
tree _stmt_vec_info::vectype |
The vector type to be used for the LHS of this statement.
The documentation for this struct was generated from the following file: