21#ifndef GCC_TREE_VECTORIZER_H
22#define GCC_TREE_VECTORIZER_H
115#define VECTORIZABLE_CYCLE_DEF(D) (((D) == vect_reduction_def) \
116 || ((D) == vect_double_reduction_def) \
117 || ((D) == vect_nested_cycle))
136 std::pair<stmt_vec_info, innermost_loop_behavior *> >
143 tree op (
unsigned int i)
const;
321 operator bool ()
const =
delete;
418 static void *
operator new (size_t);
421 static void operator delete (
void *, size_t);
476#define SLP_INSTANCE_TREE(S) (S)->root
477#define SLP_INSTANCE_LOADS(S) (S)->loads
478#define SLP_INSTANCE_ROOT_STMTS(S) (S)->root_stmts
479#define SLP_INSTANCE_REMAIN_DEFS(S) (S)->remain_defs
480#define SLP_INSTANCE_KIND(S) (S)->kind
482#define SLP_TREE_CHILDREN(S) (S)->children
483#define SLP_TREE_SCALAR_STMTS(S) (S)->stmts
484#define SLP_TREE_SCALAR_OPS(S) (S)->ops
485#define SLP_TREE_LIVE_LANES(S) (S)->live_lanes
486#define SLP_TREE_REF_COUNT(S) (S)->refcnt
487#define SLP_TREE_VEC_DEFS(S) (S)->vec_defs
488#define SLP_TREE_LOAD_PERMUTATION(S) (S)->load_permutation
489#define SLP_TREE_LANE_PERMUTATION(S) (S)->lane_permutation
490#define SLP_TREE_DEF_TYPE(S) (S)->def_type
491#define SLP_TREE_VECTYPE(S) (S)->vectype
492#define SLP_TREE_REPRESENTATIVE(S) (S)->representative
493#define SLP_TREE_LANES(S) (S)->lanes
494#define SLP_TREE_CODE(S) (S)->code
495#define SLP_TREE_TYPE(S) (S)->type
496#define SLP_TREE_GS_SCALE(S) (S)->gs_scale
497#define SLP_TREE_GS_BASE(S) (S)->gs_base
498#define SLP_TREE_REDUC_IDX(S) (S)->cycle_info.reduc_idx
499#define SLP_TREE_PERMUTE_P(S) ((S)->code == VEC_PERM_EXPR)
544 static inline hashval_t
931#define VECT_REDUC_INFO_DEF_TYPE(I) ((I)->def_type)
932#define VECT_REDUC_INFO_TYPE(I) ((I)->reduc_type)
933#define VECT_REDUC_INFO_CODE(I) ((I)->reduc_code)
934#define VECT_REDUC_INFO_FN(I) ((I)->reduc_fn)
935#define VECT_REDUC_INFO_SCALAR_RESULTS(I) ((I)->reduc_scalar_results)
936#define VECT_REDUC_INFO_INITIAL_VALUES(I) ((I)->reduc_initial_values)
937#define VECT_REDUC_INFO_REUSED_ACCUMULATOR(I) ((I)->reused_accumulator)
938#define VECT_REDUC_INFO_INDUC_COND_INITIAL_VAL(I) ((I)->induc_cond_initial_val)
939#define VECT_REDUC_INFO_EPILOGUE_ADJUSTMENT(I) ((I)->reduc_epilogue_adjustment)
940#define VECT_REDUC_INFO_VECTYPE(I) ((I)->reduc_vectype)
941#define VECT_REDUC_INFO_VECTYPE_FOR_MASK(I) ((I)->reduc_vectype_for_mask)
942#define VECT_REDUC_INFO_FORCE_SINGLE_CYCLE(I) ((I)->force_single_cycle)
943#define VECT_REDUC_INFO_RESULT_POS(I) ((I)->reduc_result_pos)
944#define VECT_REDUC_INFO_NEUTRAL_OP(I) ((I)->neutral_op)
1301#define LOOP_VINFO_LOOP(L) (L)->loop
1302#define LOOP_VINFO_MAIN_EXIT(L) (L)->vec_loop_main_exit
1303#define LOOP_VINFO_EPILOGUE_MAIN_EXIT(L) (L)->vec_epilogue_loop_main_exit
1304#define LOOP_VINFO_SCALAR_MAIN_EXIT(L) (L)->scalar_loop_main_exit
1305#define LOOP_VINFO_BBS(L) (L)->bbs
1306#define LOOP_VINFO_NBBS(L) (L)->nbbs
1307#define LOOP_VINFO_NITERSM1(L) (L)->num_itersm1
1308#define LOOP_VINFO_NITERS(L) (L)->num_iters
1309#define LOOP_VINFO_NITERS_UNCOUNTED_P(L) (LOOP_VINFO_NITERS (L) \
1314#define LOOP_VINFO_NITERS_UNCHANGED(L) (L)->num_iters_unchanged
1315#define LOOP_VINFO_NITERS_ASSUMPTIONS(L) (L)->num_iters_assumptions
1316#define LOOP_VINFO_COST_MODEL_THRESHOLD(L) (L)->th
1317#define LOOP_VINFO_VERSIONING_THRESHOLD(L) (L)->versioning_threshold
1318#define LOOP_VINFO_VECTORIZABLE_P(L) (L)->vectorizable
1319#define LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P(L) (L)->can_use_partial_vectors_p
1320#define LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P(L) (L)->must_use_partial_vectors_p
1321#define LOOP_VINFO_USING_PARTIAL_VECTORS_P(L) (L)->using_partial_vectors_p
1322#define LOOP_VINFO_USING_DECREMENTING_IV_P(L) (L)->using_decrementing_iv_p
1323#define LOOP_VINFO_USING_SELECT_VL_P(L) (L)->using_select_vl_p
1324#define LOOP_VINFO_ALLOW_MUTUAL_ALIGNMENT(L) (L)->allow_mutual_alignment
1325#define LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS(L) (L)->partial_load_store_bias
1326#define LOOP_VINFO_VECT_FACTOR(L) (L)->vectorization_factor
1327#define LOOP_VINFO_IV_INCREMENT(L) (L)->iv_increment
1328#define LOOP_VINFO_IV_INCREMENT_INVARIANT_P(L) \
1329 (!LOOP_VINFO_USING_SELECT_VL_P (L))
1330#define LOOP_VINFO_MAX_VECT_FACTOR(L) (L)->max_vectorization_factor
1331#define LOOP_VINFO_MASKS(L) (L)->masks
1332#define LOOP_VINFO_LENS(L) (L)->lens
1333#define LOOP_VINFO_MASK_SKIP_NITERS(L) (L)->mask_skip_niters
1334#define LOOP_VINFO_MASK_NITERS_PFA_OFFSET(L) (L)->mask_skip_niters_pfa_offset
1335#define LOOP_VINFO_RGROUP_COMPARE_TYPE(L) (L)->rgroup_compare_type
1336#define LOOP_VINFO_RGROUP_IV_TYPE(L) (L)->rgroup_iv_type
1337#define LOOP_VINFO_PARTIAL_VECTORS_STYLE(L) (L)->partial_vector_style
1338#define LOOP_VINFO_PTR_MASK(L) (L)->ptr_mask
1339#define LOOP_VINFO_MAX_SPEC_READ_AMOUNT(L) (L)->max_spec_read_amount
1340#define LOOP_VINFO_LOOP_NEST(L) (L)->shared->loop_nest
1341#define LOOP_VINFO_DATAREFS(L) (L)->shared->datarefs
1342#define LOOP_VINFO_DDRS(L) (L)->shared->ddrs
1343#define LOOP_VINFO_INT_NITERS(L) (TREE_INT_CST_LOW ((L)->num_iters))
1344#define LOOP_VINFO_PEELING_FOR_ALIGNMENT(L) (L)->peeling_for_alignment
1345#define LOOP_VINFO_NON_LINEAR_IV(L) (L)->nonlinear_iv
1346#define LOOP_VINFO_UNALIGNED_DR(L) (L)->unaligned_dr
1347#define LOOP_VINFO_MAY_MISALIGN_STMTS(L) (L)->may_misalign_stmts
1348#define LOOP_VINFO_MAY_ALIAS_DDRS(L) (L)->may_alias_ddrs
1349#define LOOP_VINFO_COMP_ALIAS_DDRS(L) (L)->comp_alias_ddrs
1350#define LOOP_VINFO_CHECK_UNEQUAL_ADDRS(L) (L)->check_unequal_addrs
1351#define LOOP_VINFO_CHECK_NONZERO(L) (L)->check_nonzero
1352#define LOOP_VINFO_LOWER_BOUNDS(L) (L)->lower_bounds
1353#define LOOP_VINFO_USER_UNROLL(L) (L)->user_unroll
1354#define LOOP_VINFO_GROUPED_STORES(L) (L)->grouped_stores
1355#define LOOP_VINFO_SLP_INSTANCES(L) (L)->slp_instances
1356#define LOOP_VINFO_REDUCTIONS(L) (L)->reductions
1357#define LOOP_VINFO_PEELING_FOR_GAPS(L) (L)->peeling_for_gaps
1358#define LOOP_VINFO_PEELING_FOR_NITER(L) (L)->peeling_for_niter
1359#define LOOP_VINFO_EARLY_BREAKS(L) (L)->early_breaks
1360#define LOOP_VINFO_EARLY_BRK_NEEDS_EPILOG(L) (L)->early_break_needs_epilogue
1361#define LOOP_VINFO_EARLY_BRK_STORES(L) (L)->early_break_stores
1362#define LOOP_VINFO_EARLY_BREAKS_VECT_PEELED(L) \
1363 ((single_pred ((L)->loop->latch) != (L)->vec_loop_main_exit->src) \
1364 || LOOP_VINFO_NITERS_UNCOUNTED_P (L))
1365#define LOOP_VINFO_EARLY_BREAKS_LIVE_IVS(L) \
1366 (L)->early_break_live_ivs
1367#define LOOP_VINFO_EARLY_BRK_DEST_BB(L) (L)->early_break_dest_bb
1368#define LOOP_VINFO_EARLY_BRK_VUSES(L) (L)->early_break_vuses
1369#define LOOP_VINFO_EARLY_BRK_NITERS_VAR(L) (L)->early_break_niters_var
1370#define LOOP_VINFO_EARLY_BRK_IV_TYPE(L) (L)->early_break_iv_type
1371#define LOOP_VINFO_LOOP_CONDS(L) (L)->conds
1372#define LOOP_VINFO_LOOP_IV_COND(L) (L)->loop_iv_cond
1373#define LOOP_VINFO_NO_DATA_DEPENDENCIES(L) (L)->no_data_dependencies
1374#define LOOP_VINFO_SCALAR_LOOP(L) (L)->scalar_loop
1375#define LOOP_VINFO_SCALAR_LOOP_SCALING(L) (L)->scalar_loop_scaling
1376#define LOOP_VINFO_HAS_MASK_STORE(L) (L)->has_mask_store
1377#define LOOP_VINFO_SCALAR_ITERATION_COST(L) (L)->scalar_cost_vec
1378#define LOOP_VINFO_MAIN_LOOP_INFO(L) (L)->main_loop_info
1379#define LOOP_VINFO_ORIG_LOOP_INFO(L) (L)->orig_loop_info
1380#define LOOP_VINFO_SIMD_IF_COND(L) (L)->simd_if_cond
1381#define LOOP_VINFO_INNER_LOOP_COST_FACTOR(L) (L)->inner_loop_cost_factor
1382#define LOOP_VINFO_INV_PATTERN_DEF_SEQ(L) (L)->inv_pattern_def_seq
1383#define LOOP_VINFO_DRS_ADVANCED_BY(L) (L)->drs_advanced_by
1384#define LOOP_VINFO_ALTERNATE_DEFS(L) (L)->alternate_defs
1386#define LOOP_VINFO_FULLY_MASKED_P(L) \
1387 (LOOP_VINFO_USING_PARTIAL_VECTORS_P (L) \
1388 && !LOOP_VINFO_MASKS (L).is_empty ())
1390#define LOOP_VINFO_FULLY_WITH_LENGTH_P(L) \
1391 (LOOP_VINFO_USING_PARTIAL_VECTORS_P (L) \
1392 && !LOOP_VINFO_LENS (L).is_empty ())
1394#define LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT(L) \
1395 ((L)->may_misalign_stmts.length () > 0)
1396#define LOOP_REQUIRES_VERSIONING_FOR_SPEC_READ(L) \
1397 (maybe_gt ((L)->max_spec_read_amount, 0U))
1398#define LOOP_REQUIRES_VERSIONING_FOR_ALIAS(L) \
1399 ((L)->comp_alias_ddrs.length () > 0 \
1400 || (L)->check_unequal_addrs.length () > 0 \
1401 || (L)->lower_bounds.length () > 0)
1402#define LOOP_REQUIRES_VERSIONING_FOR_NITERS(L) \
1403 (LOOP_VINFO_NITERS_ASSUMPTIONS (L))
1404#define LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND(L) \
1405 (LOOP_VINFO_SIMD_IF_COND (L))
1406#define LOOP_REQUIRES_VERSIONING(L) \
1407 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (L) \
1408 || LOOP_REQUIRES_VERSIONING_FOR_SPEC_READ (L) \
1409 || LOOP_REQUIRES_VERSIONING_FOR_ALIAS (L) \
1410 || LOOP_REQUIRES_VERSIONING_FOR_NITERS (L) \
1411 || LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND (L))
1413#define LOOP_VINFO_USE_VERSIONING_WITHOUT_PEELING(L) \
1414 ((L)->may_misalign_stmts.length () > 0 \
1415 && !LOOP_VINFO_ALLOW_MUTUAL_ALIGNMENT (L))
1417#define LOOP_VINFO_NITERS_KNOWN_P(L) \
1418 (tree_fits_shwi_p ((L)->num_iters) && tree_to_shwi ((L)->num_iters) > 0)
1420#define LOOP_VINFO_EPILOGUE_P(L) \
1421 (LOOP_VINFO_ORIG_LOOP_INFO (L) != NULL)
1423#define LOOP_VINFO_ORIG_MAX_VECT_FACTOR(L) \
1424 (LOOP_VINFO_MAX_VECT_FACTOR (LOOP_VINFO_ORIG_LOOP_INFO (L)))
1458#define BB_VINFO_BBS(B) (B)->bbs
1459#define BB_VINFO_NBBS(B) (B)->nbbs
1460#define BB_VINFO_GROUPED_STORES(B) (B)->grouped_stores
1461#define BB_VINFO_SLP_INSTANCES(B) (B)->slp_instances
1462#define BB_VINFO_DATAREFS(B) (B)->shared->datarefs
1463#define BB_VINFO_DDRS(B) (B)->shared->ddrs
1724#define STMT_VINFO_STMT(S) (S)->stmt
1725#define STMT_VINFO_RELEVANT(S) (S)->relevant
1726#define STMT_VINFO_LIVE_P(S) (S)->live
1727#define STMT_VINFO_VECTYPE(S) (S)->vectype
1728#define STMT_VINFO_VECTORIZABLE(S) (S)->vectorizable
1729#define STMT_VINFO_DATA_REF(S) ((S)->dr_aux.dr + 0)
1730#define STMT_VINFO_GATHER_SCATTER_P(S) (S)->gather_scatter_p
1731#define STMT_VINFO_STRIDED_P(S) (S)->strided_p
1732#define STMT_VINFO_SIMD_LANE_ACCESS_P(S) (S)->simd_lane_access_p
1733#define STMT_VINFO_REDUC_IDX(S) (S)->reduc_idx
1735#define STMT_VINFO_DR_WRT_VEC_LOOP(S) (S)->dr_wrt_vec_loop
1736#define STMT_VINFO_DR_BASE_ADDRESS(S) (S)->dr_wrt_vec_loop.base_address
1737#define STMT_VINFO_DR_INIT(S) (S)->dr_wrt_vec_loop.init
1738#define STMT_VINFO_DR_OFFSET(S) (S)->dr_wrt_vec_loop.offset
1739#define STMT_VINFO_DR_STEP(S) (S)->dr_wrt_vec_loop.step
1740#define STMT_VINFO_DR_BASE_ALIGNMENT(S) (S)->dr_wrt_vec_loop.base_alignment
1741#define STMT_VINFO_DR_BASE_MISALIGNMENT(S) \
1742 (S)->dr_wrt_vec_loop.base_misalignment
1743#define STMT_VINFO_DR_OFFSET_ALIGNMENT(S) \
1744 (S)->dr_wrt_vec_loop.offset_alignment
1745#define STMT_VINFO_DR_STEP_ALIGNMENT(S) \
1746 (S)->dr_wrt_vec_loop.step_alignment
1748#define STMT_VINFO_DR_INFO(S) \
1749 (gcc_checking_assert ((S)->dr_aux.stmt == (S)), &(S)->dr_aux)
1751#define STMT_VINFO_IN_PATTERN_P(S) (S)->in_pattern_p
1752#define STMT_VINFO_RELATED_STMT(S) (S)->related_stmt
1753#define STMT_VINFO_PATTERN_DEF_SEQ(S) (S)->pattern_def_seq
1754#define STMT_VINFO_DEF_TYPE(S) (S)->def_type
1755#define STMT_VINFO_GROUPED_ACCESS(S) \
1756 ((S)->dr_aux.dr && DR_GROUP_FIRST_ELEMENT(S))
1757#define STMT_VINFO_LOOP_PHI_EVOLUTION_BASE_UNCHANGED(S) (S)->loop_phi_evolution_base_unchanged
1758#define STMT_VINFO_LOOP_PHI_EVOLUTION_PART(S) (S)->loop_phi_evolution_part
1759#define STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE(S) (S)->loop_phi_evolution_type
1760#define STMT_VINFO_MIN_NEG_DIST(S) (S)->min_neg_dist
1761#define STMT_VINFO_REDUC_TYPE(S) (S)->reduc_type
1762#define STMT_VINFO_REDUC_CODE(S) (S)->reduc_code
1763#define STMT_VINFO_REDUC_DEF(S) (S)->reduc_def
1764#define STMT_VINFO_SLP_VECT_ONLY(S) (S)->slp_vect_only_p
1765#define STMT_VINFO_REDUC_VECTYPE_IN(S) (S)->reduc_vectype_in
1767#define DR_GROUP_FIRST_ELEMENT(S) \
1768 (gcc_checking_assert ((S)->dr_aux.dr), (S)->first_element)
1769#define DR_GROUP_NEXT_ELEMENT(S) \
1770 (gcc_checking_assert ((S)->dr_aux.dr), (S)->next_element)
1771#define DR_GROUP_SIZE(S) \
1772 (gcc_checking_assert ((S)->dr_aux.dr), (S)->size)
1773#define DR_GROUP_GAP(S) \
1774 (gcc_checking_assert ((S)->dr_aux.dr), (S)->gap)
1776#define STMT_VINFO_RELEVANT_P(S) ((S)->relevant != vect_unused_in_scope)
1778#define PURE_SLP_STMT(S) ((S)->slp_type == pure_slp)
1779#define STMT_SLP_TYPE(S) (S)->slp_type
1810 tree vectype,
int misalign,
1964#define VECT_MAX_COST 1000
1968#define MAX_INTERM_CVT_STEPS 3
1970#define MAX_VECTORIZATION_FACTOR INT_MAX
1977#define VECT_SCALAR_BOOLEAN_TYPE_P(TYPE) \
1978 (TREE_CODE (TYPE) == BOOLEAN_TYPE \
1979 || ((TREE_CODE (TYPE) == INTEGER_TYPE \
1980 || TREE_CODE (TYPE) == ENUMERAL_TYPE) \
1981 && TYPE_PRECISION (TYPE) == 1 \
1982 && TYPE_UNSIGNED (TYPE)))
2010 return stmt_info->mask_precision && stmt_info->mask_precision != ~0U;
2019 return stmt_info->pattern_stmt_p;
2088 for (
i = 0;
i < x;
i++)
2098 tree vectype,
int misalign)
2100 return targetm.vectorize.builtin_vectorization_cost (type_of_cost,
2117 return targetm.vectorize.create_costs (vinfo, costing_for_scalar);
2130 tree vectype,
int misalign,
2135 if (
costs->costing_for_scalar ())
2140 unsigned cost =
costs->add_stmt_cost (count, kind, stmt_info,
node, vectype,
2161 i->vectype,
i->misalign,
i->where);
2177#define DR_MISALIGNMENT_UNKNOWN (-1)
2178#define DR_MISALIGNMENT_UNINITIALIZED (-2)
2189#define SET_DR_MISALIGNMENT(DR, VAL) set_dr_misalignment (DR, VAL)
2197 return dr_info->target_alignment;
2199#define DR_TARGET_ALIGNMENT(DR) dr_target_alignment (DR)
2200#define DR_SCALAR_KNOWN_BOUNDS(DR) (DR)->scalar_access_known_in_bounds
2212 return dr_info->safe_speculative_read_required;
2219 bool requires_alignment)
2227 dr_info->safe_speculative_read_required = requires_alignment;
2233 dr_info->target_alignment = val;
2235#define SET_DR_TARGET_ALIGNMENT(DR, VAL) set_dr_target_alignment (DR, VAL)
2266 else if (misalignment == 0)
2268 return misalignment & -misalignment;
2280 if (loop_vinfo ==
NULL
2319 return flag_simd_cost_model;
2320 return flag_vect_cost_model;
2399inline unsigned HOST_WIDE_INT
2402 unsigned HOST_WIDE_INT vf;
2437 return code == DOT_PROD_EXPR || code == WIDEN_SUM_EXPR || code == SAD_EXPR;
2465#define DUMP_VECT_SCOPE(MSG) \
2466 AUTO_DUMP_SCOPE (MSG, vect_location)
2500 bool =
false,
bool =
false,
2544 vec<std::pair<tree, tree_code> > &,
2606 unsigned int *,
unsigned int *,
2617 const char * =
nullptr);
2672 const char * =
NULL);
2698 unsigned int,
tree,
unsigned int);
2700 tree,
unsigned int);
2703 unsigned int,
unsigned int,
bool);
2706 unsigned int,
tree,
tree,
unsigned int,
2770 unsigned * =
nullptr,
bool =
false);
2789 unsigned int * =
NULL,
2804 unsigned *,
unsigned *);
2841typedef hash_map <slp_tree, complex_perm_kinds_t>
2845typedef pair_hash <nofree_ptr_hash <_slp_tree>,
2873 this->m_node =
node;
2874 this->m_ops.create (0);
2876 this->m_ops.safe_splice (*
m_ops);
2891 this->m_ops.release ();
2996 return (def_stmt_info
edge loop_preheader_edge(const class loop *loop)
Definition cfgloop.cc:1758
class loop * loop_p
Definition cfgloop.h:98
Definition tree-vectorizer.h:1450
vec< slp_root > roots
Definition tree-vectorizer.h:1455
_bb_vec_info(vec< basic_block > bbs, vec_info_shared *)
Definition tree-vect-slp.cc:8824
Definition tree-vectorizer.h:961
tree mask_skip_niters_pfa_offset
Definition tree-vectorizer.h:1061
bool peeling_for_gaps
Definition tree-vectorizer.h:1192
tree iv_increment
Definition tree-vectorizer.h:1001
bool can_use_partial_vectors_p
Definition tree-vectorizer.h:1156
poly_uint64 ptr_mask
Definition tree-vectorizer.h:1097
bool early_break_needs_epilogue
Definition tree-vectorizer.h:1271
signed char partial_load_store_bias
Definition tree-vectorizer.h:1187
class vector_costs * vector_costs
Definition tree-vectorizer.h:979
class dr_vec_info * unaligned_dr
Definition tree-vectorizer.h:1084
_loop_vec_info(class loop *, vec_info_shared *)
Definition tree-vect-loop.cc:724
edge skip_main_loop_edge
Definition tree-vectorizer.h:1010
unsigned int th
Definition tree-vectorizer.h:987
_loop_vec_info * epilogue_vinfo
Definition tree-vectorizer.h:1252
_loop_vec_info * main_loop_info
Definition tree-vectorizer.h:1243
auto_vec< gimple * > early_break_vuses
Definition tree-vectorizer.h:1285
bool using_partial_vectors_p
Definition tree-vectorizer.h:1163
bool no_data_dependencies
Definition tree-vectorizer.h:1229
class loop * scalar_loop
Definition tree-vectorizer.h:1239
tree drs_advanced_by
Definition tree-vectorizer.h:1255
scalar_cond_masked_set_type scalar_cond_masked_set
Definition tree-vectorizer.h:1047
auto_vec< ddr_p > may_alias_ddrs
Definition tree-vectorizer.h:1107
tree num_itersm1
Definition tree-vectorizer.h:970
unsigned int inner_loop_cost_factor
Definition tree-vectorizer.h:1147
bool vectorizable
Definition tree-vectorizer.h:1150
vect_partial_vector_style partial_vector_style
Definition tree-vectorizer.h:1081
tree early_break_niters_var
Definition tree-vectorizer.h:1289
poly_uint64 max_spec_read_amount
Definition tree-vectorizer.h:1100
auto_vec< vect_reduc_info > reduc_infos
Definition tree-vectorizer.h:1018
tree num_iters
Definition tree-vectorizer.h:972
hash_map< tree, tree > * scan_map
Definition tree-vectorizer.h:1143
int peeling_for_alignment
Definition tree-vectorizer.h:1094
vec_cond_masked_set_type vec_cond_masked_set
Definition tree-vectorizer.h:1050
bool early_breaks
Definition tree-vectorizer.h:1200
poly_uint64 versioning_threshold
Definition tree-vectorizer.h:993
auto_vec< vec_lower_bound > lower_bounds
Definition tree-vectorizer.h:1122
profile_probability scalar_loop_scaling
Definition tree-vectorizer.h:1235
auto_vec< gimple * > early_break_stores
Definition tree-vectorizer.h:1277
edge main_loop_edge
Definition tree-vectorizer.h:1009
edge skip_this_loop_edge
Definition tree-vectorizer.h:1014
bool must_use_partial_vectors_p
Definition tree-vectorizer.h:1159
auto_vec< stmt_info_for_cost > scalar_cost_vec
Definition tree-vectorizer.h:1136
gcond * loop_iv_cond
Definition tree-vectorizer.h:1206
tree early_break_iv_type
Definition tree-vectorizer.h:1293
basic_block early_break_dest_bb
Definition tree-vectorizer.h:1281
bool using_select_vl_p
Definition tree-vectorizer.h:1175
tree rgroup_compare_type
Definition tree-vectorizer.h:1066
poly_uint64 vectorization_factor
Definition tree-vectorizer.h:997
bool peeling_for_niter
Definition tree-vectorizer.h:1196
auto_vec< dr_with_seg_len_pair_t > comp_alias_ddrs
Definition tree-vectorizer.h:1111
edge vec_epilogue_loop_main_exit
Definition tree-vectorizer.h:1263
tree num_iters_unchanged
Definition tree-vectorizer.h:974
vec_loop_lens lens
Definition tree-vectorizer.h:1044
unsigned HOST_WIDE_INT max_vectorization_factor
Definition tree-vectorizer.h:1036
bool allow_mutual_alignment
Definition tree-vectorizer.h:1182
unsigned int suggested_unroll_factor
Definition tree-vectorizer.h:1032
hash_map< tree_operand_hash, tree > * ivexpr_map
Definition tree-vectorizer.h:1139
auto_vec< stmt_vec_info > may_misalign_stmts
Definition tree-vectorizer.h:1126
tree rgroup_iv_type
Definition tree-vectorizer.h:1077
vec_loop_masks masks
Definition tree-vectorizer.h:1040
tree num_iters_assumptions
Definition tree-vectorizer.h:976
tree simd_if_cond
Definition tree-vectorizer.h:1073
auto_vec< stmt_vec_info > alternate_defs
Definition tree-vectorizer.h:1133
auto_vec< tree > check_nonzero
Definition tree-vectorizer.h:1119
bool user_unroll
Definition tree-vectorizer.h:1210
auto_vec< stmt_vec_info > early_break_live_ivs
Definition tree-vectorizer.h:1297
tree mask_skip_niters
Definition tree-vectorizer.h:1056
edge vec_loop_main_exit
Definition tree-vectorizer.h:1259
edge scalar_loop_main_exit
Definition tree-vectorizer.h:1267
bool has_mask_store
Definition tree-vectorizer.h:1232
auto_vec< stmt_vec_info > reductions
Definition tree-vectorizer.h:1129
class loop * loop
Definition tree-vectorizer.h:967
bool nonlinear_iv
Definition tree-vectorizer.h:1103
bool using_decrementing_iv_p
Definition tree-vectorizer.h:1170
auto_vec< gcond * > conds
Definition tree-vectorizer.h:1203
_loop_vec_info * orig_loop_info
Definition tree-vectorizer.h:1248
hash_map< tree, vect_reusable_accumulator > reusable_accumulators
Definition tree-vectorizer.h:1025
class vector_costs * scalar_costs
Definition tree-vectorizer.h:982
auto_vec< vec_object_pair > check_unequal_addrs
Definition tree-vectorizer.h:1114
Definition tree-vectorizer.h:442
slp_instance_kind kind
Definition tree-vectorizer.h:469
vec< stmt_vec_info > root_stmts
Definition tree-vectorizer.h:449
slp_tree root
Definition tree-vectorizer.h:445
dump_user_location_t location() const
Definition tree-vect-slp.cc:198
vec< slp_tree > loads
Definition tree-vectorizer.h:456
vec< _slp_instance * > subgraph_entries
Definition tree-vectorizer.h:466
vec< tree > remain_defs
Definition tree-vectorizer.h:453
slp_tree reduc_phis
Definition tree-vectorizer.h:459
stmt_vector_for_cost cost_vec
Definition tree-vectorizer.h:462
Definition tree-vectorizer.h:1540
unsigned int min_input_precision
Definition tree-vectorizer.h:1660
code_helper reduc_code
Definition tree-vectorizer.h:1643
tree vectype
Definition tree-vectorizer.h:1564
bool in_pattern_p
Definition tree-vectorizer.h:1548
stmt_vec_info first_element
Definition tree-vectorizer.h:1610
unsigned int mask_precision
Definition tree-vectorizer.h:1683
int reduc_idx
Definition tree-vectorizer.h:1647
gimple * stmt
Definition tree-vectorizer.h:1561
tree loop_phi_evolution_base_unchanged
Definition tree-vectorizer.h:1582
enum vect_induction_op_type loop_phi_evolution_type
Definition tree-vectorizer.h:1584
innermost_loop_behavior dr_wrt_vec_loop
Definition tree-vectorizer.h:1574
bool slp_vect_only_p
Definition tree-vectorizer.h:1686
bool live
Definition tree-vectorizer.h:1545
unsigned int gap
Definition tree-vectorizer.h:1617
unsigned int min_output_precision
Definition tree-vectorizer.h:1655
unsigned int min_neg_dist
Definition tree-vectorizer.h:1621
bool vectorizable
Definition tree-vectorizer.h:1558
bool pattern_stmt_p
Definition tree-vectorizer.h:1554
bool strided_p
Definition tree-vectorizer.h:1632
enum vect_relevant relevant
Definition tree-vectorizer.h:1626
unsigned int size
Definition tree-vectorizer.h:1614
signop operation_sign
Definition tree-vectorizer.h:1666
gimple_seq pattern_def_seq
Definition tree-vectorizer.h:1600
stmt_vec_info related_stmt
Definition tree-vectorizer.h:1595
unsigned simd_lane_access_p
Definition tree-vectorizer.h:1635
stmt_vec_info reduc_def
Definition tree-vectorizer.h:1651
bool gather_scatter_p
Definition tree-vectorizer.h:1629
enum vect_def_type def_type
Definition tree-vectorizer.h:1603
stmt_vec_info next_element
Definition tree-vectorizer.h:1612
unsigned int operation_precision
Definition tree-vectorizer.h:1665
enum vect_reduction_type reduc_type
Definition tree-vectorizer.h:1639
enum slp_vect_type slp_type
Definition tree-vectorizer.h:1606
dr_vec_info dr_aux
Definition tree-vectorizer.h:1570
tree loop_phi_evolution_part
Definition tree-vectorizer.h:1583
Definition tree-vectorizer.h:2481
Definition tree-vectorizer.h:1506
bool scalar_access_known_in_bounds
Definition tree-vectorizer.h:1529
unsigned group
Definition tree-vectorizer.h:1514
tree base_decl
Definition tree-vectorizer.h:1531
bool base_misaligned
Definition tree-vectorizer.h:1521
tree offset
Definition tree-vectorizer.h:1535
int misalignment
Definition tree-vectorizer.h:1516
poly_uint64 target_alignment
Definition tree-vectorizer.h:1519
data_reference * dr
Definition tree-vectorizer.h:1509
bool safe_speculative_read_required
Definition tree-vectorizer.h:1525
stmt_vec_info stmt
Definition tree-vectorizer.h:1511
Definition dumpfile.h:340
bool is_empty() const
Definition hash-set.h:107
void add_int(unsigned v)
Definition inchash.h:55
hashval_t end() const
Definition inchash.h:49
void add_flag(bool flag)
Definition inchash.h:124
class loop * inner
Definition cfgloop.h:148
unsigned force_vectorize
Definition cfgloop.h:227
void * aux
Definition cfgloop.h:154
Definition opt-problem.h:179
Definition profile-count.h:149
Definition tree-vectorizer.h:618
vec< data_reference_p > datarefs
Definition tree-vectorizer.h:627
vec< data_reference > datarefs_copy
Definition tree-vectorizer.h:628
auto_vec< loop_p > loop_nest
Definition tree-vectorizer.h:631
void check_datarefs()
Definition tree-vectorizer.cc:511
void save_datarefs()
Definition tree-vectorizer.cc:501
vec< ddr_p > ddrs
Definition tree-vectorizer.h:635
vec_info_shared()
Definition tree-vectorizer.cc:486
Definition tree-vectorizer.h:639
stmt_vec_info lookup_stmt(gimple *)
Definition tree-vectorizer.cc:575
basic_block * bbs
Definition tree-vectorizer.h:699
auto_vec< stmt_vec_info > grouped_stores
Definition tree-vectorizer.h:684
auto_vec< slp_instance > slp_instances
Definition tree-vectorizer.h:676
void replace_stmt(gimple_stmt_iterator *, stmt_vec_info, gimple *)
Definition tree-vectorizer.cc:664
void remove_stmt(stmt_vec_info)
Definition tree-vectorizer.cc:648
void insert_on_entry(stmt_vec_info, gimple *)
Definition tree-vectorizer.cc:706
void set_vinfo_for_stmt(gimple *, stmt_vec_info, bool=true)
Definition tree-vectorizer.cc:748
vec_base_alignments base_alignments
Definition tree-vectorizer.h:680
machine_mode vector_mode
Definition tree-vectorizer.h:692
stmt_vec_info resync_stmt_addr(gimple *)
Definition tree-vectorizer.cc:555
stmt_vec_info new_stmt_vec_info(gimple *stmt)
Definition tree-vectorizer.cc:717
class dr_vec_info * lookup_dr(data_reference *)
Definition tree-vectorizer.cc:617
vec< stmt_vec_info > stmt_vec_infos
Definition tree-vectorizer.h:667
void move_dr(stmt_vec_info, stmt_vec_info)
Definition tree-vectorizer.cc:629
bool any_known_not_updated_vssa
Definition tree-vectorizer.h:673
vec_kind
Definition tree-vectorizer.h:642
@ loop
Definition tree-vectorizer.h:642
@ bb
Definition tree-vectorizer.h:642
void free_stmt_vec_infos()
Definition tree-vectorizer.cc:769
vec_info_shared * shared
Definition tree-vectorizer.h:664
gimple_seq inv_pattern_def_seq
Definition tree-vectorizer.h:708
unsigned int nbbs
Definition tree-vectorizer.h:702
stmt_vec_info add_stmt(gimple *)
Definition tree-vectorizer.cc:526
vec_kind kind
Definition tree-vectorizer.h:661
mode_set used_vector_modes
Definition tree-vectorizer.h:687
hash_set< int_hash< machine_mode, E_VOIDmode, E_BLKmode > > mode_set
Definition tree-vectorizer.h:641
void insert_seq_on_entry(stmt_vec_info, gimple_seq)
Definition tree-vectorizer.cc:680
stmt_vec_info lookup_def(tree)
Definition tree-vectorizer.cc:592
void free_stmt_vec_info(stmt_vec_info)
Definition tree-vectorizer.cc:780
stmt_vec_info lookup_single_use(tree)
Definition tree-vectorizer.cc:605
vec_info(vec_kind, vec_info_shared *)
Definition tree-vectorizer.cc:467
stmt_vec_info add_pattern_stmt(gimple *, stmt_vec_info)
Definition tree-vectorizer.cc:538
bool stmt_vec_info_ro
Definition tree-vectorizer.h:669
vec_lower_bound()
Definition tree-vectorizer.h:607
poly_uint64 min_value
Definition tree-vectorizer.h:613
bool unsigned_p
Definition tree-vectorizer.h:612
vec_lower_bound(tree e, bool u, poly_uint64 m)
Definition tree-vectorizer.h:608
tree expr
Definition tree-vectorizer.h:611
Definition vec-perm-indices.h:51
Definition tree-vectorizer.h:2854
static vect_pattern * recognize(slp_tree_to_load_perm_map_t *, slp_compat_nodes_map_t *, slp_tree *)
internal_fn m_ifn
Definition tree-vectorizer.h:2860
vec< slp_tree > m_ops
Definition tree-vectorizer.h:2867
virtual ~vect_pattern()
Definition tree-vectorizer.h:2889
virtual void build(vec_info *)=0
vect_pattern(slp_tree *node, vec< slp_tree > *m_ops, internal_fn ifn)
Definition tree-vectorizer.h:2870
slp_tree * m_node
Definition tree-vectorizer.h:2863
unsigned m_num_args
Definition tree-vectorizer.h:2857
Definition tree-vectorizer.h:870
tree reduc_epilogue_adjustment
Definition tree-vectorizer.h:912
enum vect_reduction_type reduc_type
Definition tree-vectorizer.h:878
struct vect_reusable_accumulator * reused_accumulator
Definition tree-vectorizer.h:916
internal_fn reduc_fn
Definition tree-vectorizer.h:884
tree reduc_vectype_for_mask
Definition tree-vectorizer.h:903
bool is_reduc_chain
Definition tree-vectorizer.h:893
code_helper reduc_code
Definition tree-vectorizer.h:881
auto_vec< tree > reduc_initial_values
Definition tree-vectorizer.h:920
tree induc_cond_initial_val
Definition tree-vectorizer.h:909
tree reduc_vectype
Definition tree-vectorizer.h:899
bool force_single_cycle
Definition tree-vectorizer.h:896
enum vect_def_type def_type
Definition tree-vectorizer.h:874
tree neutral_op
Definition tree-vectorizer.h:906
unsigned int reduc_result_pos
Definition tree-vectorizer.h:890
auto_vec< tree > reduc_scalar_results
Definition tree-vectorizer.h:926
Definition tree-vectorizer.h:1784
unsigned int adjust_cost_for_freq(stmt_vec_info, vect_cost_model_location, unsigned int)
Definition tree-vectorizer.cc:1890
virtual ~vector_costs()
Definition tree-vectorizer.h:1787
bool m_costing_for_scalar
Definition tree-vectorizer.h:1865
vector_costs(vec_info *, bool)
Definition tree-vectorizer.h:1890
bool costing_for_scalar() const
Definition tree-vectorizer.h:1850
vec_info * m_vinfo
Definition tree-vectorizer.h:1861
machine_mode m_suggested_epilogue_mode
Definition tree-vectorizer.h:1879
virtual bool better_main_loop_than_p(const vector_costs *other) const
Definition tree-vectorizer.cc:1910
unsigned int m_costs[3]
Definition tree-vectorizer.h:1868
unsigned int outside_cost() const
Definition tree-vectorizer.h:1931
virtual unsigned int add_slp_cost(slp_tree node, const array_slice< stmt_info_for_cost > &v)
Definition tree-vectorizer.cc:1852
virtual bool better_epilogue_loop_than_p(const vector_costs *other, loop_vec_info main_loop) const
Definition tree-vectorizer.cc:1929
unsigned int epilogue_cost() const
Definition tree-vectorizer.h:1922
int m_masked_epilogue
Definition tree-vectorizer.h:1880
machine_mode suggested_epilogue_mode(int &masked) const
Definition tree-vectorizer.h:1957
unsigned int m_suggested_unroll_factor
Definition tree-vectorizer.h:1871
unsigned int suggested_unroll_factor() const
Definition tree-vectorizer.h:1948
bool m_finished
Definition tree-vectorizer.h:1883
int compare_outside_loop_cost(const vector_costs *) const
Definition tree-vectorizer.cc:2105
unsigned int body_cost() const
Definition tree-vectorizer.h:1913
virtual void finish_cost(const vector_costs *scalar_costs)
Definition tree-vectorizer.cc:1865
unsigned int prologue_cost() const
Definition tree-vectorizer.h:1904
unsigned int total_cost() const
Definition tree-vectorizer.h:1940
vec_info * vinfo() const
Definition tree-vectorizer.h:1849
int compare_inside_loop_cost(const vector_costs *) const
Definition tree-vectorizer.cc:2012
struct basic_block_def * basic_block
Definition coretypes.h:351
class edge_def * edge
Definition coretypes.h:348
gimple * gimple_seq
Definition coretypes.h:100
const class edge_def * const_edge
Definition coretypes.h:349
const union tree_node * const_tree
Definition coretypes.h:98
union tree_node * tree
Definition coretypes.h:97
bool dominated_by_p(enum cdi_direction dir, const_basic_block bb1, const_basic_block bb2)
Definition dominance.cc:1125
@ CDI_DOMINATORS
Definition dominance.h:25
dump_flags_t dump_flags
Definition dumpfile.cc:65
FILE * dump_file
Definition dumpfile.cc:63
@ TDF_DETAILS
Definition dumpfile.h:92
vect_cost_model
Definition flag-types.h:279
@ VECT_COST_MODEL_UNLIMITED
Definition flag-types.h:283
@ VECT_COST_MODEL_DEFAULT
Definition flag-types.h:284
bool operand_equal_p(const_tree arg0, const_tree arg1, unsigned int flags)
Definition fold-const.cc:4333
#define fold_convert(T1, T2)
Definition fold-const.h:96
#define fold_build2(c, t1, t2, t3)
Definition fold-const.h:76
internal_fn
Definition genmatch.cc:1024
tree_code
Definition genmatch.cc:1011
unsigned gimple_uid(const gimple *g)
Definition gimple.h:2094
enum tree_code gimple_assign_rhs_code(const gassign *gs)
Definition gimple.h:2869
tree gimple_assign_rhs1(const gassign *gs)
Definition gimple.h:2679
basic_block gimple_bb(const gimple *g)
Definition gimple.h:1870
tree gimple_assign_lhs(const gassign *gs)
Definition gimple.h:2628
#define UINT_MAX
Definition glimits.h:89
#define init_cost
Definition ira-costs.cc:63
T dyn_cast(U *p)
Definition is-a.h:280
Definition custom-sarif-properties/state-graphs.h:33
void add_expr(const_tree t, inchash::hash &hstate, unsigned int flags)
Definition fold-const.cc:4347
opt_pointer_wrapper< tree > opt_tree
Definition opt-problem.h:287
poly_int< NUM_POLY_INT_COEFFS, unsigned HOST_WIDE_INT > poly_uint64
Definition poly-int-types.h:25
poly_int< NUM_POLY_INT_COEFFS, HOST_WIDE_INT > poly_int64
Definition poly-int-types.h:24
i
Definition poly-int.h:776
signop
Definition signop.h:28
bool single_imm_use(const_tree var, use_operand_p *use_p, gimple **stmt)
Definition ssa-iterators.h:462
Definition tree-vectorizer.h:333
stmt_vec_info representative
Definition tree-vectorizer.h:355
tree gs_base
Definition tree-vectorizer.h:393
unsigned int lanes
Definition tree-vectorizer.h:386
bool avoid_stlf_fail
Definition tree-vectorizer.h:399
load_permutation_t load_permutation
Definition tree-vectorizer.h:367
slp_tree prev_node
Definition tree-vectorizer.h:425
enum tree_code code
Definition tree-vectorizer.h:388
bool ldst_lanes
Definition tree-vectorizer.h:396
vec< tree > vec_defs
Definition tree-vectorizer.h:376
T & get_data(T &else_)
Definition tree-vectorizer.h:410
int gs_scale
Definition tree-vectorizer.h:391
unsigned int refcnt
Definition tree-vectorizer.h:382
enum stmt_vec_info_type type
Definition tree-vectorizer.h:406
slp_tree next_node
Definition tree-vectorizer.h:424
int vertex
Definition tree-vectorizer.h:402
enum vect_def_type def_type
Definition tree-vectorizer.h:384
vec< tree > ops
Definition tree-vectorizer.h:348
void push_vec_def(gimple *def)
Definition tree-vect-slp.cc:166
lane_permutation_t lane_permutation
Definition tree-vectorizer.h:372
_slp_tree()
Definition tree-vect-slp.cc:108
vec< unsigned > live_lanes
Definition tree-vectorizer.h:351
match_elt_t * failed
Definition tree-vectorizer.h:415
struct _slp_tree::@120146070312105203102335350023136130264031166255 cycle_info
tree vectype
Definition tree-vectorizer.h:374
void push_vec_def(tree def)
Definition tree-vectorizer.h:338
gimple * si
Definition tree-vectorizer.h:379
vec< slp_tree > children
Definition tree-vectorizer.h:341
vect_data * data
Definition tree-vectorizer.h:407
vec< stmt_vec_info > stmts
Definition tree-vectorizer.h:345
class loop * loop_father
Definition basic-block.h:126
Definition ira-costs.cc:54
Definition tree-data-ref.h:151
struct innermost_loop_behavior innermost
Definition tree-data-ref.h:173
Definition loop-invariant.cc:88
static const bool empty_zero_p
Definition tree-vectorizer.h:566
static void mark_empty(value_type &v)
Definition tree-vectorizer.h:569
scalar_cond_masked_key value_type
Definition tree-vectorizer.h:542
static bool equal(value_type existing, value_type candidate)
Definition tree-vectorizer.h:557
static void remove(value_type &)
Definition tree-vectorizer.h:588
static hashval_t hash(value_type v)
Definition tree-vectorizer.h:545
static void mark_deleted(value_type &)
Definition tree-vectorizer.h:581
static bool is_deleted(const value_type &)
Definition tree-vectorizer.h:583
static bool is_empty(value_type v)
Definition tree-vectorizer.h:576
scalar_cond_masked_key compare_type
Definition tree-vectorizer.h:541
Definition hash-traits.h:466
Definition graphite.h:338
data_reference_p dr
Definition graphite.h:343
Definition function.h:249
Definition tree-vectorizer.h:1690
tree decl
Definition tree-vectorizer.h:1697
tree element_type
Definition tree-vectorizer.h:1717
tree base
Definition tree-vectorizer.h:1700
tree offset_vectype
Definition tree-vectorizer.h:1714
tree alias_ptr
Definition tree-vectorizer.h:1704
int scale
Definition tree-vectorizer.h:1711
tree offset
Definition tree-vectorizer.h:1707
internal_fn ifn
Definition tree-vectorizer.h:1693
tree memory_type
Definition tree-vectorizer.h:1720
Definition gimple-iterator.h:26
Definition tree-data-ref.h:50
tree offset
Definition tree-data-ref.h:52
Definition hash-traits.h:122
Definition tree-vectorizer.h:319
int v
Definition tree-vectorizer.h:320
match_elt_t & operator=(bool)=delete
Definition hash-traits.h:345
Definition tree-vectorizer.h:821
tree compare_type
Definition tree-vectorizer.h:841
unsigned int max_nscalars_per_iter
Definition tree-vectorizer.h:825
unsigned int factor
Definition tree-vectorizer.h:831
tree type
Definition tree-vectorizer.h:837
tree bias_adjusted_ctrl
Definition tree-vectorizer.h:848
vec< tree > controls
Definition tree-vectorizer.h:844
unsigned ncopies
Definition tree-vectorizer.h:531
tree_code code
Definition tree-vectorizer.h:533
scalar_cond_masked_key(tree t, unsigned ncopies_)
Definition tree-vectorizer.h:523
void get_cond_ops_from_tree(tree)
Definition tree-vectorizer.cc:1791
tree op0
Definition tree-vectorizer.h:534
tree op1
Definition tree-vectorizer.h:535
bool inverted_p
Definition tree-vectorizer.h:532
vec< tree > remain
Definition tree-vectorizer.h:1446
slp_instance_kind kind
Definition tree-vectorizer.h:1443
vec< stmt_vec_info > roots
Definition tree-vectorizer.h:1445
slp_root(slp_instance_kind kind_, vec< stmt_vec_info > stmts_, vec< stmt_vec_info > roots_, vec< tree > remain_=vNULL)
Definition tree-vectorizer.h:1440
vec< stmt_vec_info > stmts
Definition tree-vectorizer.h:1444
Definition tree-vectorizer.h:121
tree vectype
Definition tree-vectorizer.h:127
int misalign
Definition tree-vectorizer.h:128
slp_tree node
Definition tree-vectorizer.h:126
enum vect_cost_model_location where
Definition tree-vectorizer.h:124
enum vect_cost_for_stmt kind
Definition tree-vectorizer.h:123
stmt_vec_info stmt_info
Definition tree-vectorizer.h:125
int count
Definition tree-vectorizer.h:122
Definition tree-hash-traits.h:25
Definition hash-traits.h:75
Definition tree-vectorizer.h:852
hash_set< pair_hash< nofree_ptr_hash< tree_node >, int_hash< unsigned, 0 > > > mask_set
Definition tree-vectorizer.h:857
auto_vec< rgroup_controls > rgc_vec
Definition tree-vectorizer.h:860
bool is_empty() const
Definition tree-vectorizer.h:853
Definition tree-vectorizer.h:258
virtual ~vect_data()=default
Definition tree-vectorizer.h:281
int misalignment
Definition tree-vectorizer.h:288
bool subchain_p
Definition tree-vectorizer.h:316
virtual ~vect_load_store_data()=default
vect_load_store_data()=default
unsigned n_perms
Definition tree-vectorizer.h:313
poly_int64 poffset
Definition tree-vectorizer.h:290
vect_memory_access_type memory_access_type
Definition tree-vectorizer.h:286
int supported_scale
Definition tree-vectorizer.h:309
tree ls_eltype
Definition tree-vectorizer.h:300
vect_load_store_data(vect_load_store_data &&other)=default
tree strided_offset_vectype
Definition tree-vectorizer.h:295
tree supported_offset_vectype
Definition tree-vectorizer.h:305
tree ls_type
Definition tree-vectorizer.h:297
union vect_load_store_data::@336230030006311336100276173266177172342371306160 gs
unsigned n_loads
Definition tree-vectorizer.h:314
auto_vec< int > elsvals
Definition tree-vectorizer.h:310
dr_alignment_support alignment_support_scheme
Definition tree-vectorizer.h:287
internal_fn lanes_ifn
Definition tree-vectorizer.h:289
bool slp_perm
Definition tree-vectorizer.h:312
Definition tree-vectorizer.h:948
tree reduc_input
Definition tree-vectorizer.h:951
vect_reduc_info reduc_info
Definition tree-vectorizer.h:955
Definition tree-vectorizer.h:160
static void mark_deleted(value_type &s)
Definition tree-vectorizer.h:166
static bool is_empty(const value_type &s)
Definition tree-vectorizer.h:169
static bool is_deleted(const value_type &s)
Definition tree-vectorizer.h:168
static const bool empty_zero_p
Definition tree-vectorizer.h:164
static void mark_empty(value_type &s)
Definition tree-vectorizer.h:167
static hashval_t hash(const value_type &)
Definition tree-vect-slp.cc:9043
vect_scalar_ops_slice value_type
Definition tree-vectorizer.h:161
static bool equal(const value_type &, const compare_type &)
Definition tree-vect-slp.cc:9052
vect_scalar_ops_slice compare_type
Definition tree-vectorizer.h:162
Definition tree-vectorizer.h:142
unsigned int length
Definition tree-vectorizer.h:148
unsigned int start
Definition tree-vectorizer.h:147
bool all_same_p() const
Definition tree-vect-slp.cc:9034
tree op(unsigned int i) const
Definition tree-vectorizer.h:153
vec< tree > * ops
Definition tree-vectorizer.h:146
virtual ~vect_simd_clone_data()=default
cgraph_node * clone
Definition tree-vectorizer.h:270
vect_simd_clone_data(vect_simd_clone_data &&other)=default
cgraph_node * clone_inbranch
Definition tree-vectorizer.h:271
vect_simd_clone_data()=default
auto_vec< tree > simd_clone_info
Definition tree-vectorizer.h:276
#define NULL
Definition system.h:58
#define gcc_assert(EXPR)
Definition system.h:819
#define gcc_unreachable()
Definition system.h:846
#define false
Definition system.h:893
#define bool
Definition system.h:891
#define gcc_checking_assert(EXPR)
Definition system.h:826
HOST_WIDE_INT estimated_poly_value(poly_int64 x, poly_value_estimate_kind kind=POLY_VALUE_LIKELY)
Definition target.h:347
struct gcc_target targetm
vect_cost_model_location
Definition target.h:221
@ vect_body
Definition target.h:223
@ vect_prologue
Definition target.h:222
@ vect_epilogue
Definition target.h:224
vect_cost_for_stmt
Definition target.h:198
@ scalar_stmt
Definition target.h:199
@ cond_branch_taken
Definition target.h:212
@ vec_to_scalar
Definition target.h:209
@ cond_branch_not_taken
Definition target.h:211
@ tcc_comparison
Definition tree-core.h:239
@ vec_kind
Definition tree-core.h:1061
#define DR_IS_WRITE(DR)
Definition tree-data-ref.h:192
#define DR_IS_READ(DR)
Definition tree-data-ref.h:191
#define DR_REF(DR)
Definition tree-data-ref.h:185
#define DR_INNERMOST(DR)
Definition tree-data-ref.h:203
bool ref_within_array_bound(gimple *stmt, tree ref)
Definition tree-if-conv.cc:852
#define PHI_ARG_DEF_FROM_EDGE(PHI, E)
Definition tree-ssa-operands.h:84
ssa_use_operand_t * use_operand_p
Definition tree-ssa-operands.h:30
enum dr_alignment_support vect_supportable_dr_alignment(vec_info *vinfo, dr_vec_info *dr_info, tree vectype, int misalignment, bool is_gather_scatter)
Definition tree-vect-data-refs.cc:6692
tree vect_create_data_ref_ptr(vec_info *vinfo, stmt_vec_info stmt_info, tree aggr_type, class loop *at_loop, tree offset, tree *initial_address, gimple_stmt_iterator *gsi, gimple **ptr_incr, bool only_init, tree iv_step)
Definition tree-vect-data-refs.cc:5751
bool vect_slp_analyze_instance_dependence(vec_info *vinfo, slp_instance instance)
Definition tree-vect-data-refs.cc:1103
bool vect_gather_scatter_fn_p(vec_info *vinfo, bool read_p, bool masked_p, tree vectype, tree memory_type, tree offset_type, int scale, int *supported_scale, internal_fn *ifn_out, tree *offset_vectype_out, tree *supported_offset_vectype, vec< int > *elsvals)
Definition tree-vect-data-refs.cc:4534
bool vect_grouped_store_supported(tree vectype, unsigned HOST_WIDE_INT count)
Definition tree-vect-data-refs.cc:6090
opt_result vect_analyze_data_ref_dependences(loop_vec_info loop_vinfo, unsigned int *max_vf)
Definition tree-vect-data-refs.cc:801
opt_result vect_prune_runtime_alias_test_list(loop_vec_info loop_vinfo)
Definition tree-vect-data-refs.cc:4087
void vect_record_base_alignments(vec_info *vinfo)
Definition tree-vect-data-refs.cc:1323
void vect_analyze_data_refs_alignment(loop_vec_info loop_vinfo)
Definition tree-vect-data-refs.cc:2992
tree vect_create_addr_base_for_vector_ref(vec_info *vinfo, stmt_vec_info stmt_info, gimple_seq *new_stmt_list, tree offset)
Definition tree-vect-data-refs.cc:5603
tree bump_vector_ptr(vec_info *vinfo, tree dataref_ptr, gimple_stmt_iterator *gsi, stmt_vec_info stmt_info, tree update)
Definition tree-vect-data-refs.cc:5990
tree vect_setup_realignment(vec_info *vinfo, stmt_vec_info stmt_info, tree vectype, gimple_stmt_iterator *gsi, tree *realignment_token, enum dr_alignment_support alignment_support_scheme, tree init_addr, class loop **at_loop)
Definition tree-vect-data-refs.cc:6284
opt_result vect_enhance_data_refs_alignment(loop_vec_info loop_vinfo)
Definition tree-vect-data-refs.cc:2259
int dr_misalignment(dr_vec_info *dr_info, tree vectype, poly_int64 offset)
Definition tree-vect-data-refs.cc:1242
tree vect_get_new_vect_var(tree type, enum vect_var_kind var_kind, const char *name)
Definition tree-vect-data-refs.cc:5476
bool vect_grouped_load_supported(tree vectype, bool single_element_p, unsigned HOST_WIDE_INT count)
Definition tree-vect-data-refs.cc:6521
internal_fn vect_load_lanes_supported(tree vectype, unsigned HOST_WIDE_INT count, bool masked_p, vec< int > *elsvals)
Definition tree-vect-data-refs.cc:6638
opt_result vect_find_stmt_data_reference(loop_p loop, gimple *stmt, vec< data_reference_p > *datarefs, vec< int > *dataref_groups, int group_id)
Definition tree-vect-data-refs.cc:5047
bool vect_check_gather_scatter(stmt_vec_info stmt_info, tree vectype, loop_vec_info loop_vinfo, gather_scatter_info *info, vec< int > *elsvals)
Definition tree-vect-data-refs.cc:4713
tree vect_get_new_ssa_name(tree type, enum vect_var_kind var_kind, const char *name)
Definition tree-vect-data-refs.cc:5514
opt_result vect_analyze_data_ref_accesses(vec_info *vinfo, vec< int > *dataref_groups)
Definition tree-vect-data-refs.cc:3552
bool vect_can_force_dr_alignment_p(const_tree decl, poly_uint64 alignment)
Definition tree-vect-data-refs.cc:6667
void vect_describe_gather_scatter_call(stmt_vec_info stmt_info, gather_scatter_info *info)
Definition tree-vect-data-refs.cc:4686
bool vect_slp_analyze_instance_alignment(vec_info *vinfo, slp_instance instance)
Definition tree-vect-data-refs.cc:3058
internal_fn vect_store_lanes_supported(tree vectype, unsigned HOST_WIDE_INT count, bool masked_p)
Definition tree-vect-data-refs.cc:6208
tree vect_create_destination_var(tree scalar_dest, tree vectype)
Definition tree-vect-data-refs.cc:6056
opt_result vect_analyze_data_refs(vec_info *vinfo, bool *fatal)
Definition tree-vect-data-refs.cc:5222
void vect_copy_ref_info(tree dest, tree src)
Definition tree-vect-data-refs.cc:6034
dump_user_location_t find_loop_location(class loop *loop)
Definition tree-vect-loop-manip.cc:2314
void vect_set_loop_condition(class loop *loop, edge loop_e, loop_vec_info loop_vinfo, tree niters, tree step, tree final_iv, bool niters_maybe_zero)
Definition tree-vect-loop-manip.cc:1533
void vect_prepare_for_masked_peels(loop_vec_info loop_vinfo)
Definition tree-vect-loop-manip.cc:2917
class loop * vect_do_peeling(loop_vec_info loop_vinfo, tree niters, tree nitersm1, tree *niters_vector, tree *step_vector, tree *niters_vector_mult_vf_var, int th, bool check_profitability, bool niters_no_overflow, tree *advance)
Definition tree-vect-loop-manip.cc:3431
tree vect_get_loop_iv_increment(loop_vec_info loop_vinfo)
Definition tree-vect-loop-manip.cc:3175
void vect_update_inits_of_drs(loop_vec_info loop_vinfo, tree niters, tree_code code)
Definition tree-vect-loop-manip.cc:2887
bool vect_can_advance_ivs_p(loop_vec_info loop_vinfo)
Definition tree-vect-loop-manip.cc:2465
tree vect_get_main_loop_result(loop_vec_info loop_vinfo, tree main_loop_value, tree skip_value)
Definition tree-vect-loop-manip.cc:3322
class loop * slpeel_tree_duplicate_loop_to_edge_cfg(class loop *loop, edge loop_exit, class loop *scalar_loop, edge scalar_exit, edge e, edge *new_e, bool flow_loops, vec< basic_block > *updated_doms, bool uncounted_p, bool create_main_e, bool redirect_exits)
Definition tree-vect-loop-manip.cc:1608
bool slpeel_can_duplicate_loop_p(const class loop *loop, const_edge exit_e, const_edge e)
Definition tree-vect-loop-manip.cc:2282
class loop * vect_loop_versioning(loop_vec_info loop_vinfo, gimple *loop_vectorized_call)
Definition tree-vect-loop-manip.cc:4503
void vect_gen_vector_loop_niters(loop_vec_info loop_vinfo, tree niters, tree *niters_vector_ptr, tree *step_vector_ptr, bool niters_no_overflow)
Definition tree-vect-loop-manip.cc:3063
void vect_iv_increment_position(edge loop_exit, gimple_stmt_iterator *bsi, bool *insert_after)
Definition tree-vect-loop-manip.cc:459
tree vect_build_loop_niters(loop_vec_info loop_vinfo, bool *new_var_p)
Definition tree-vect-loop-manip.cc:2963
opt_result vect_analyze_loop_form(class loop *loop, gimple *loop_vectorized_call, vect_loop_form_info *info)
Definition tree-vect-loop.cc:1440
tree vect_double_mask_nunits(tree old_type, machine_mode new_mode)
Definition tree-vect-loop.cc:10571
tree neutral_op_for_reduction(tree scalar_type, code_helper code, tree initial_value, bool as_initial)
Definition tree-vect-loop.cc:3358
tree cse_and_gimplify_to_preheader(loop_vec_info loop_vinfo, tree expr)
Definition tree-vect-loop.cc:874
bool vectorizable_lane_reducing(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, slp_tree slp_node, stmt_vector_for_cost *cost_vec)
Definition tree-vect-loop.cc:6782
void vect_record_loop_mask(loop_vec_info loop_vinfo, vec_loop_masks *masks, unsigned int nvectors, tree vectype, tree scalar_mask)
Definition tree-vect-loop.cc:10583
void optimize_mask_stores(class loop *loop)
Definition tree-vect-loop.cc:11629
bool vectorizable_live_operation(vec_info *vinfo, stmt_vec_info stmt_info, slp_tree slp_node, slp_instance slp_node_instance, int slp_index, bool vec_stmt_p, stmt_vector_for_cost *cost_vec)
Definition tree-vect-loop.cc:10177
void vect_record_loop_len(loop_vec_info loop_vinfo, vec_loop_lens *lens, unsigned int nvectors, tree vectype, unsigned int factor)
Definition tree-vect-loop.cc:10723
bool vect_rgroup_iv_might_wrap_p(loop_vec_info loop_vinfo, rgroup_controls *rgc)
Definition tree-vect-loop.cc:11865
class loop * vect_transform_loop(loop_vec_info loop_vinfo, gimple *loop_vectorized_call)
Definition tree-vect-loop.cc:11206
bool vectorizable_reduction(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, slp_tree slp_node, slp_instance slp_node_instance, stmt_vector_for_cost *cost_vec)
Definition tree-vect-loop.cc:6964
bool vectorizable_phi(bb_vec_info vinfo, stmt_vec_info stmt_info, slp_tree slp_node, stmt_vector_for_cost *cost_vec)
Definition tree-vect-loop.cc:8559
tree vect_peel_nonlinear_iv_init(gimple_seq *stmts, tree init_expr, tree skip_niters, tree step_expr, enum vect_induction_op_type induction_type, bool early_exit_p)
Definition tree-vect-loop.cc:9013
tree vect_gen_loop_len_mask(loop_vec_info loop_vinfo, gimple_stmt_iterator *gsi, gimple_stmt_iterator *cond_gsi, vec_loop_lens *lens, unsigned int nvectors, tree vectype, tree stmt, unsigned int index, unsigned int factor)
Definition tree-vect-loop.cc:10855
bool vect_transform_reduction(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, slp_tree slp_node)
Definition tree-vect-loop.cc:7977
bool vect_can_vectorize_without_simd_p(tree_code code)
Definition tree-vect-loop.cc:8887
widest_int vect_iv_limit_for_partial_vectors(loop_vec_info loop_vinfo)
Definition tree-vect-loop.cc:11824
bool reduction_fn_for_scalar_code(code_helper code, internal_fn *reduc_fn)
Definition tree-vect-loop.cc:3274
bool vectorizable_lc_phi(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, slp_tree slp_node)
Definition tree-vect-loop.cc:8493
tree vect_get_loop_len(loop_vec_info loop_vinfo, gimple_stmt_iterator *gsi, vec_loop_lens *lens, unsigned int nvectors, tree vectype, unsigned int index, unsigned int factor, bool adjusted)
Definition tree-vect-loop.cc:10758
bool vect_emulated_vector_p(tree vectype)
Definition tree-vect-loop.cc:8876
bool vect_transform_cycle_phi(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, slp_tree slp_node, slp_instance slp_node_instance)
Definition tree-vect-loop.cc:8290
bool vectorizable_recurr(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, slp_tree slp_node, stmt_vector_for_cost *cost_vec)
Definition tree-vect-loop.cc:8701
vect_reduc_info info_for_reduction(loop_vec_info loop_vinfo, slp_tree node)
Definition tree-vect-loop.cc:5042
bool check_reduction_path(dump_user_location_t loc, loop_p loop, gphi *phi, tree loop_arg, enum tree_code code)
Definition tree-vect-loop.cc:3655
int vect_get_known_peeling_cost(loop_vec_info loop_vinfo, int peel_iters_prologue)
Definition tree-vect-loop.cc:3938
edge vec_init_loop_exit_info(class loop *loop)
Definition tree-vect-loop.cc:656
bool vectorizable_induction(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, slp_tree slp_node, stmt_vector_for_cost *cost_vec)
Definition tree-vect-loop.cc:9539
tree vect_halve_mask_nunits(tree old_type, machine_mode new_mode)
Definition tree-vect-loop.cc:10561
loop_vec_info vect_create_loop_vinfo(class loop *loop, vec_info_shared *shared, const vect_loop_form_info *info, loop_vec_info orig_loop_info)
Definition tree-vect-loop.cc:1672
bool vect_transform_lc_phi(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, slp_tree slp_node)
Definition tree-vect-loop.cc:8533
tree vect_get_loop_mask(loop_vec_info loop_vinfo, gimple_stmt_iterator *gsi, vec_loop_masks *masks, unsigned int nvectors, tree vectype, unsigned int index)
Definition tree-vect-loop.cc:10605
opt_loop_vec_info vect_analyze_loop(class loop *loop, gimple *loop_vectorized_call, vec_info_shared *shared)
Definition tree-vect-loop.cc:2927
bool needs_fold_left_reduction_p(tree type, code_helper code)
Definition tree-vect-loop.cc:3416
unsigned vect_min_prec_for_max_niters(loop_vec_info loop_vinfo, unsigned int factor)
Definition tree-vect-loop.cc:936
void vect_mark_pattern_stmts(vec_info *vinfo, stmt_vec_info orig_stmt_info, gimple *pattern_stmt, tree pattern_vectype)
Definition tree-vect-patterns.cc:7572
gimple * vect_gimple_build(tree lhs, code_helper ch, tree op0, tree op1)
Definition tree-vect-patterns.cc:7897
void vect_pattern_recog(vec_info *vinfo)
Definition tree-vect-patterns.cc:7861
bool vect_get_range_info(tree var, wide_int *min_value, wide_int *max_value)
Definition tree-vect-patterns.cc:69
vect_pattern_decl_t slp_patterns[]
Definition tree-vect-slp-patterns.cc:1818
_complex_operation
Definition tree-vect-slp-patterns.cc:119
size_t num__slp_patterns
Definition tree-vect-slp-patterns.cc:1829
slp_tree vect_create_new_slp_node(unsigned nops, tree_code code)
Definition tree-vect-slp.cc:226
bool vect_slp_analyze_operations(vec_info *vinfo)
Definition tree-vect-slp.cc:9532
opt_result vect_analyze_slp(vec_info *vinfo, unsigned max_tree_size, bool force_single_lane)
Definition tree-vect-slp.cc:5931
tree vect_get_slp_vect_def(slp_tree slp_node, unsigned i)
Definition tree-vect-slp.cc:11302
bool vect_transform_slp_perm_load(vec_info *vinfo, slp_tree node, const vec< tree > &dr_chain, gimple_stmt_iterator *gsi, poly_uint64 vf, bool analyze_only, unsigned *n_perms, unsigned int *n_loads, bool dce_chain)
Definition tree-vect-slp.cc:11628
void vect_free_slp_instance(slp_instance instance)
Definition tree-vect-slp.cc:210
int vect_get_place_in_interleaving_chain(stmt_vec_info stmt_info, stmt_vec_info first_stmt_info)
Definition tree-vect-slp.cc:403
bool vect_load_perm_consecutive_p(slp_tree node, unsigned start_val)
Definition tree-vect-slp.cc:5597
void duplicate_and_interleave(vec_info *vinfo, gimple_seq *seq, tree vector_type, const vec< tree > &elts, unsigned int nresults, vec< tree > &results)
Definition tree-vect-slp.cc:10956
void vect_gather_slp_loads(vec_info *vinfo)
Definition tree-vect-slp.cc:8716
bool vect_get_num_copies_for_invariant(vec_info *vinfo, slp_tree node, unsigned *nvectors, unsigned *excess_elts)
Definition tree-vect-slp.cc:9069
int vect_slp_child_index_for_operand(const stmt_vec_info stmt, int op)
Definition tree-vect-slp.cc:640
void vect_slp_fini(void)
Definition tree-vect-slp.cc:83
bool vect_schedule_slp(vec_info *vinfo, vec< slp_instance > &slp_instances, bool place_only)
Definition tree-vect-slp.cc:12928
void vect_optimize_slp(vec_info *vinfo)
Definition tree-vect-slp.cc:8664
stmt_vec_info vect_find_last_scalar_stmt_in_slp(slp_tree node)
Definition tree-vect-slp.cc:3795
bool vectorizable_slp_permutation(vec_info *vinfo, gimple_stmt_iterator *gsi, slp_tree node, stmt_vector_for_cost *cost_vec)
Definition tree-vect-slp.cc:12133
void vect_free_slp_tree(slp_tree node)
Definition tree-vect-slp.cc:180
tree vect_get_slp_scalar_def(slp_tree slp_node, unsigned n)
Definition tree-vect-slp.cc:11284
stmt_vec_info vect_find_first_scalar_stmt_in_slp(slp_tree node)
Definition tree-vect-slp.cc:3811
bool can_duplicate_and_interleave_p(vec_info *vinfo, unsigned int count, tree elt_type, unsigned int *nvectors_out, tree *vector_type_out, tree *permutes)
Definition tree-vect-slp.cc:432
void vect_slp_init(void)
Definition tree-vect-slp.cc:77
bool vect_make_slp_decision(loop_vec_info loop_vinfo)
Definition tree-vect-slp.cc:8777
void vect_get_slp_defs(slp_tree slp_node, vec< tree > *vec_defs)
Definition tree-vect-slp.cc:11310
bool vect_slp_function(function *fun)
Definition tree-vect-slp.cc:10824
bool compatible_calls_p(gcall *call1, gcall *call2, bool allow_two_operators)
Definition tree-vect-slp.cc:1052
bool vect_slp_if_converted_bb(basic_block bb, loop_p orig_loop)
Definition tree-vect-slp.cc:10813
tree prepare_vec_mask(loop_vec_info loop_vinfo, tree mask_type, tree loop_mask, tree vec_mask, gimple_stmt_iterator *gsi)
Definition tree-vect-stmts.cc:1596
tree vect_gen_perm_mask_checked(tree vectype, const vec_perm_indices &sel)
Definition tree-vect-stmts.cc:9616
void vect_finish_replace_stmt(vec_info *vinfo, stmt_vec_info stmt_info, gimple *vec_stmt)
Definition tree-vect-stmts.cc:1292
opt_result vect_get_vector_types_for_stmt(vec_info *vinfo, stmt_vec_info stmt_info, tree *stmt_vectype_out, unsigned int group_size)
Definition tree-vect-stmts.cc:14518
void vect_get_store_cost(vec_info *, stmt_vec_info stmt_info, slp_tree slp_node, int ncopies, dr_alignment_support alignment_support_scheme, int misalignment, unsigned int *inside_cost, stmt_vector_for_cost *body_cost_vec)
Definition tree-vect-stmts.cc:984
tree vect_gen_while(gimple_seq *seq, tree mask_type, tree start_index, tree end_index, const char *name)
Definition tree-vect-stmts.cc:14474
void vect_get_load_cost(vec_info *, stmt_vec_info stmt_info, slp_tree slp_node, int ncopies, dr_alignment_support alignment_support_scheme, int misalignment, bool add_realign_cost, unsigned int *inside_cost, unsigned int *prologue_cost, stmt_vector_for_cost *prologue_cost_vec, stmt_vector_for_cost *body_cost_vec, bool record_prologue_costs)
Definition tree-vect-stmts.cc:1036
bool supportable_narrowing_operation(code_helper code, tree vectype_out, tree vectype_in, code_helper *code1, int *multi_step_cvt, vec< tree > *interm_types)
Definition tree-vect-stmts.cc:14156
bool vect_chooses_same_modes_p(vec_info *vinfo, machine_mode vector_mode)
Definition tree-vect-stmts.cc:13588
opt_result vect_analyze_stmt(vec_info *vinfo, slp_tree node, slp_instance node_instance, stmt_vector_for_cost *cost_vec)
Definition tree-vect-stmts.cc:13019
tree get_mask_type_for_scalar_type(vec_info *vinfo, tree scalar_type, unsigned int group_size)
Definition tree-vect-stmts.cc:13534
opt_result vect_mark_stmts_to_be_vectorized(loop_vec_info loop_vinfo, bool *fatal)
Definition tree-vect-stmts.cc:678
void vect_get_vec_defs(vec_info *, slp_tree slp_node, bool op0, vec< tree > *vec_oprnds0, bool op1, vec< tree > *vec_oprnds1, bool op2, vec< tree > *vec_oprnds2, bool op3, vec< tree > *vec_oprnds3)
Definition tree-vect-stmts.cc:1245
int compare_step_with_zero(vec_info *vinfo, stmt_vec_info stmt_info)
Definition tree-vect-stmts.cc:1856
tree vect_gen_while_not(gimple_seq *seq, tree mask_type, tree start_index, tree end_index)
Definition tree-vect-stmts.cc:14498
gimple_seq vect_gen_len(tree len, tree start_index, tree end_index, tree len_limit)
Definition tree-vect-stmts.cc:14636
bool vect_is_simple_use(tree operand, vec_info *vinfo, enum vect_def_type *dt, stmt_vec_info *def_stmt_info_out, gimple **def_stmt_out)
Definition tree-vect-stmts.cc:13636
tree get_same_sized_vectype(tree scalar_type, tree vector_type)
Definition tree-vect-stmts.cc:13570
bool vect_nop_conversion_p(stmt_vec_info stmt_info)
Definition tree-vect-stmts.cc:5940
bool vect_supportable_shift(vec_info *vinfo, enum tree_code code, tree scalar_type)
Definition tree-vect-stmts.cc:6125
void vect_remove_stores(vec_info *vinfo, stmt_vec_info first_stmt_info)
Definition tree-vect-stmts.cc:13311
bool vect_maybe_update_slp_op_vectype(slp_tree op, tree vectype)
Definition tree-vect-stmts.cc:13799
void vect_finish_stmt_generation(vec_info *vinfo, stmt_vec_info stmt_info, gimple *vec_stmt, gimple_stmt_iterator *gsi)
Definition tree-vect-stmts.cc:1308
void vect_transform_stmt(vec_info *vinfo, stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, slp_tree slp_node, slp_instance slp_node_instance)
Definition tree-vect-stmts.cc:13168
tree get_vectype_for_scalar_type(vec_info *vinfo, tree scalar_type, unsigned int group_size)
Definition tree-vect-stmts.cc:13459
unsigned record_stmt_cost(stmt_vector_for_cost *body_cost_vec, int count, enum vect_cost_for_stmt kind, stmt_vec_info stmt_info, slp_tree node, tree vectype, int misalign, enum vect_cost_model_location where)
Definition tree-vect-stmts.cc:91
tree get_related_vectype_for_scalar_type(machine_mode prevailing_mode, tree scalar_type, poly_uint64 nunits)
Definition tree-vect-stmts.cc:13341
bool vectorizable_early_exit(loop_vec_info loop_vinfo, stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, slp_tree slp_node, stmt_vector_for_cost *cost_vec)
Definition tree-vect-stmts.cc:12747
tree vect_init_vector(vec_info *vinfo, stmt_vec_info stmt_info, tree val, tree type, gimple_stmt_iterator *gsi)
Definition tree-vect-stmts.cc:1183
bool supportable_indirect_convert_operation(code_helper code, tree vectype_out, tree vectype_in, vec< std::pair< tree, tree_code > > &converts, slp_tree slp_op0)
Definition tree-vect-stmts.cc:14329
bool supportable_widening_operation(code_helper code, tree vectype_out, tree vectype_in, bool evenodd_ok, code_helper *code1, code_helper *code2, int *multi_step_cvt, vec< tree > *interm_types)
Definition tree-vect-stmts.cc:13841
tree perm_mask_for_reverse(tree vectype)
Definition tree-vect-stmts.cc:1867
bool is_simple_and_all_uses_invariant(stmt_vec_info stmt_info, loop_vec_info loop_vinfo)
Definition tree-vect-stmts.cc:322
tree vect_get_store_rhs(stmt_vec_info stmt_info)
Definition tree-vect-stmts.cc:1948
tree vect_get_mask_load_else(int elsval, tree type)
Definition tree-vect-stmts.cc:2942
tree vect_gen_perm_mask_any(tree vectype, const vec_perm_indices &sel)
Definition tree-vect-stmts.cc:9601
gimple * vect_loop_vectorized_call(class loop *loop, gcond **cond)
Definition tree-vectorizer.cc:873
void vect_free_loop_info_assumptions(class loop *loop)
Definition tree-vectorizer.cc:858
dump_user_location_t vect_location
Definition tree-vectorizer.cc:89
bool vect_stmt_dominates_stmt_p(gimple *s1, gimple *s2)
Definition tree-vectorizer.cc:796
void dump_stmt_cost(FILE *f, int count, enum vect_cost_for_stmt kind, stmt_vec_info stmt_info, slp_tree node, tree, int misalign, unsigned cost, enum vect_cost_model_location where)
Definition tree-vectorizer.cc:103
stmt_vec_info vect_orig_stmt(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2026
#define LOOP_VINFO_COST_MODEL_THRESHOLD(L)
Definition tree-vectorizer.h:1316
int builtin_vectorization_cost(enum vect_cost_for_stmt type_of_cost, tree vectype, int misalign)
Definition tree-vectorizer.h:2097
loop_vec_info loop_vec_info_for_loop(class loop *loop)
Definition tree-vectorizer.h:1433
bool vect_is_extending_load(class vec_info *vinfo, stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2979
vec< unsigned > load_permutation_t
Definition tree-vectorizer.h:255
opt_tree vect_get_mask_type_for_stmt(stmt_vec_info, unsigned int=0)
#define LOOP_VINFO_VECT_FACTOR(L)
Definition tree-vectorizer.h:1326
#define SLP_TREE_LANES(S)
Definition tree-vectorizer.h:493
std::pair< tree, tree > vec_object_pair
Definition tree-vectorizer.h:601
_bb_vec_info * bb_vec_info
#define LOOP_VINFO_FULLY_MASKED_P(L)
Definition tree-vectorizer.h:1386
bool vect_is_truncating_store(class vec_info *vinfo, stmt_vec_info stmt_info)
Definition tree-vectorizer.h:3003
#define VECT_REDUC_INFO_TYPE(I)
Definition tree-vectorizer.h:932
tree vect_comparison_type(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2969
#define STMT_VINFO_GROUPED_ACCESS(S)
Definition tree-vectorizer.h:1755
auto_vec< unsigned, 16 > auto_load_permutation_t
Definition tree-vectorizer.h:256
#define SLP_TREE_VECTYPE(S)
Definition tree-vectorizer.h:491
#define LOOP_VINFO_LOOP(L)
Definition tree-vectorizer.h:1301
_complex_perm_kinds
Definition tree-vectorizer.h:2830
@ PERM_EVENEVEN
Definition tree-vectorizer.h:2835
@ PERM_TOP
Definition tree-vectorizer.h:2837
@ PERM_ODDEVEN
Definition tree-vectorizer.h:2833
@ PERM_EVENODD
Definition tree-vectorizer.h:2832
@ PERM_UNKNOWN
Definition tree-vectorizer.h:2831
@ PERM_ODDODD
Definition tree-vectorizer.h:2834
#define SLP_TREE_TYPE(S)
Definition tree-vectorizer.h:495
vec_load_store_type
Definition tree-vectorizer.h:1500
@ VLS_LOAD
Definition tree-vectorizer.h:1501
@ VLS_STORE
Definition tree-vectorizer.h:1502
@ VLS_STORE_INVARIANT
Definition tree-vectorizer.h:1503
pair_hash< tree_operand_hash, tree_operand_hash > tree_cond_mask_hash
Definition tree-vectorizer.h:596
_loop_vec_info * loop_vec_info
vect_pattern *(*) vect_pattern_decl_t(slp_tree_to_load_perm_map_t *, slp_compat_nodes_map_t *, slp_tree *)
Definition tree-vectorizer.h:2896
vect_var_kind
Definition tree-vectorizer.h:37
@ vect_pointer_var
Definition tree-vectorizer.h:39
@ vect_scalar_var
Definition tree-vectorizer.h:40
@ vect_mask_var
Definition tree-vectorizer.h:41
@ vect_simple_var
Definition tree-vectorizer.h:38
class _stmt_vec_info * stmt_vec_info
Definition tree-vectorizer.h:24
#define STMT_VINFO_DATA_REF(S)
Definition tree-vectorizer.h:1729
unsigned int vect_get_num_copies(vec_info *vinfo, slp_tree node)
Definition tree-vectorizer.h:2361
bool vect_is_store_elt_extraction(vect_cost_for_stmt kind, stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2916
const poly_uint64 dr_target_alignment(dr_vec_info *dr_info)
Definition tree-vectorizer.h:2193
struct data_reference * dr_p
Definition tree-vectorizer.h:1538
#define STMT_VINFO_VECTYPE(S)
Definition tree-vectorizer.h:1727
class vect_reduc_info_s * vect_reduc_info
Definition tree-vectorizer.h:929
#define LOOP_VINFO_NON_LINEAR_IV(L)
Definition tree-vectorizer.h:1345
unsigned HOST_WIDE_INT vect_max_vf(loop_vec_info loop_vinfo)
Definition tree-vectorizer.h:2400
hash_set< scalar_cond_masked_key > scalar_cond_masked_set_type
Definition tree-vectorizer.h:591
tree vect_phi_initial_value(gphi *phi)
Definition tree-vectorizer.h:1996
opt_pointer_wrapper< loop_vec_info > opt_loop_vec_info
Definition tree-vectorizer.h:1430
peeling_support
Definition tree-vectorizer.h:62
@ peeling_known_supported
Definition tree-vectorizer.h:63
@ peeling_maybe_supported
Definition tree-vectorizer.h:64
@ peeling_unsupported
Definition tree-vectorizer.h:65
void add_stmt_costs(vector_costs *costs, stmt_vector_for_cost *cost_vec)
Definition tree-vectorizer.h:2165
#define LOOP_VINFO_NITERS_KNOWN_P(L)
Definition tree-vectorizer.h:1417
stmt_vec_info get_later_stmt(stmt_vec_info stmt1_info, stmt_vec_info stmt2_info)
Definition tree-vectorizer.h:2036
vec< std::pair< unsigned, unsigned > > lane_permutation_t
Definition tree-vectorizer.h:253
vect_partial_vector_style
Definition tree-vectorizer.h:510
@ vect_partial_vectors_none
Definition tree-vectorizer.h:511
@ vect_partial_vectors_len
Definition tree-vectorizer.h:514
@ vect_partial_vectors_avx512
Definition tree-vectorizer.h:513
@ vect_partial_vectors_while_ult
Definition tree-vectorizer.h:512
class _slp_instance * slp_instance
#define STMT_VINFO_REDUC_IDX(S)
Definition tree-vectorizer.h:1733
unsigned int vect_vf_for_cost(loop_vec_info loop_vinfo)
Definition tree-vectorizer.h:2382
unsigned int vect_nunits_for_cost(tree vec_type)
Definition tree-vectorizer.h:2392
#define STMT_VINFO_IN_PATTERN_P(S)
Definition tree-vectorizer.h:1751
#define LOOP_VINFO_PEELING_FOR_ALIGNMENT(L)
Definition tree-vectorizer.h:1344
#define STMT_VINFO_DR_INFO(S)
Definition tree-vectorizer.h:1748
hash_map< slp_node_hash, bool > slp_compat_nodes_map_t
Definition tree-vectorizer.h:2847
bool lane_reducing_op_p(code_helper code)
Definition tree-vectorizer.h:2435
bool nested_in_vect_loop_p(class loop *loop, stmt_vec_info stmt_info)
Definition tree-vectorizer.h:1985
bool operator!=(const match_elt_t &m, const match_elt_t &m2)
Definition tree-vectorizer.h:326
auto_vec< std::pair< data_reference *, tree > > drs_init_vec
Definition tree-vectorizer.h:865
int vect_get_stmt_cost(enum vect_cost_for_stmt type_of_cost)
Definition tree-vectorizer.h:2107
unsigned vectorize_loops(void)
bool vect_apply_runtime_profitability_check_p(loop_vec_info loop_vinfo)
Definition tree-vectorizer.h:2425
unsigned int vect_get_num_vectors(poly_uint64 nunits, tree vectype)
Definition tree-vectorizer.h:2352
#define DR_TARGET_ALIGNMENT(DR)
Definition tree-vectorizer.h:2199
void set_dr_target_alignment(dr_vec_info *dr_info, poly_uint64 val)
Definition tree-vectorizer.h:2231
stmt_vec_info vect_stmt_to_vectorize(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2063
void dr_set_safe_speculative_read_required(stmt_vec_info stmt_info, bool requires_alignment)
Definition tree-vectorizer.h:2218
#define STMT_VINFO_RELATED_STMT(S)
Definition tree-vectorizer.h:1752
bool is_pattern_stmt_p(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2017
#define MAX_VECTORIZATION_FACTOR
Definition tree-vectorizer.h:1970
int vect_pow2(int x)
Definition tree-vectorizer.h:2084
vect_induction_op_type
Definition tree-vectorizer.h:84
@ vect_step_op_add
Definition tree-vectorizer.h:85
@ vect_step_op_shl
Definition tree-vectorizer.h:88
@ vect_step_op_mul
Definition tree-vectorizer.h:87
@ vect_step_op_neg
Definition tree-vectorizer.h:86
@ vect_step_op_shr
Definition tree-vectorizer.h:89
bool lane_reducing_stmt_p(gimple *stmt)
Definition tree-vectorizer.h:2443
enum _complex_perm_kinds complex_perm_kinds_t
bool vect_is_integer_truncation(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:3031
auto_vec< std::pair< unsigned, unsigned >, 16 > auto_lane_permutation_t
Definition tree-vectorizer.h:254
bool vect_use_loop_mask_for_alignment_p(loop_vec_info loop_vinfo)
Definition tree-vectorizer.h:2335
bool vect_get_loop_mask_type(loop_vec_info)
slp_instance_kind
Definition tree-vectorizer.h:431
@ slp_inst_kind_ctor
Definition tree-vectorizer.h:436
@ slp_inst_kind_reduc_group
Definition tree-vectorizer.h:433
@ slp_inst_kind_store
Definition tree-vectorizer.h:432
@ slp_inst_kind_reduc_chain
Definition tree-vectorizer.h:434
@ slp_inst_kind_gcond
Definition tree-vectorizer.h:437
@ slp_inst_kind_bb_reduc
Definition tree-vectorizer.h:435
enum vect_cost_model loop_cost_model(loop_p loop)
Definition tree-vectorizer.h:2314
unsigned int vect_known_alignment_in_bytes(dr_vec_info *dr_info, tree vectype, poly_int64 offset=0)
Definition tree-vectorizer.h:2260
#define DR_MISALIGNMENT_UNKNOWN
Definition tree-vectorizer.h:2177
bool mat_gather_scatter_p(vect_memory_access_type mat)
Definition tree-vectorizer.h:216
hash_map< slp_tree, complex_perm_kinds_t > slp_tree_to_load_perm_map_t
Definition tree-vectorizer.h:2842
bool vect_is_reduction(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2925
#define LOOP_VINFO_EARLY_BREAKS(L)
Definition tree-vectorizer.h:1359
#define SLP_TREE_REDUC_IDX(S)
Definition tree-vectorizer.h:498
innermost_loop_behavior * vect_dr_behavior(vec_info *vinfo, dr_vec_info *dr_info)
Definition tree-vectorizer.h:2276
vect_memory_access_type SLP_TREE_MEMORY_ACCESS_TYPE(slp_tree node)
Definition tree-vectorizer.h:502
stmt_vec_info_type
Definition tree-vectorizer.h:226
@ comparison_vec_info_type
Definition tree-vectorizer.h:236
@ condition_vec_info_type
Definition tree-vectorizer.h:235
@ type_conversion_vec_info_type
Definition tree-vectorizer.h:241
@ load_vec_info_type
Definition tree-vectorizer.h:228
@ loop_exit_ctrl_vec_info_type
Definition tree-vectorizer.h:246
@ permute_info_type
Definition tree-vectorizer.h:247
@ recurr_info_type
Definition tree-vectorizer.h:245
@ op_vec_info_type
Definition tree-vectorizer.h:231
@ reduc_vec_info_type
Definition tree-vectorizer.h:237
@ assignment_vec_info_type
Definition tree-vectorizer.h:234
@ undef_vec_info_type
Definition tree-vectorizer.h:227
@ shift_vec_info_type
Definition tree-vectorizer.h:230
@ type_demotion_vec_info_type
Definition tree-vectorizer.h:240
@ store_vec_info_type
Definition tree-vectorizer.h:229
@ cycle_phi_info_type
Definition tree-vectorizer.h:242
@ phi_info_type
Definition tree-vectorizer.h:244
@ lc_phi_info_type
Definition tree-vectorizer.h:243
@ type_promotion_vec_info_type
Definition tree-vectorizer.h:239
@ call_simd_clone_vec_info_type
Definition tree-vectorizer.h:233
@ call_vec_info_type
Definition tree-vectorizer.h:232
@ induc_vec_info_type
Definition tree-vectorizer.h:238
struct _slp_tree * slp_tree
Definition tree-vectorizer.h:25
bool dr_safe_speculative_read_required(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2204
tree vect_embedded_comparison_type(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2954
vect_def_type
Definition tree-vectorizer.h:69
@ vect_induction_def
Definition tree-vectorizer.h:74
@ vect_uninitialized_def
Definition tree-vectorizer.h:70
@ vect_nested_cycle
Definition tree-vectorizer.h:77
@ vect_constant_def
Definition tree-vectorizer.h:71
@ vect_external_def
Definition tree-vectorizer.h:72
@ vect_condition_def
Definition tree-vectorizer.h:79
@ vect_internal_def
Definition tree-vectorizer.h:73
@ vect_reduction_def
Definition tree-vectorizer.h:75
@ vect_double_reduction_def
Definition tree-vectorizer.h:76
@ vect_first_order_recurrence
Definition tree-vectorizer.h:78
@ vect_unknown_def_type
Definition tree-vectorizer.h:80
vect_relevant
Definition tree-vectorizer.h:1467
@ vect_used_in_outer
Definition tree-vectorizer.h:1477
@ vect_used_in_scope
Definition tree-vectorizer.h:1487
@ vect_unused_in_scope
Definition tree-vectorizer.h:1468
@ vect_used_by_reduction
Definition tree-vectorizer.h:1485
@ vect_used_in_outer_by_reduction
Definition tree-vectorizer.h:1474
@ vect_used_only_live
Definition tree-vectorizer.h:1471
bool is_loop_header_bb_p(basic_block bb)
Definition tree-vectorizer.h:2073
#define STMT_VINFO_DR_WRT_VEC_LOOP(S)
Definition tree-vectorizer.h:1735
bool unlimited_cost_model(loop_p loop)
Definition tree-vectorizer.h:2325
unsigned int vect_get_scalar_dr_size(dr_vec_info *dr_info)
Definition tree-vectorizer.h:2416
dr_alignment_support
Definition tree-vectorizer.h:52
@ dr_unaligned_supported
Definition tree-vectorizer.h:54
@ dr_explicit_realign_optimized
Definition tree-vectorizer.h:56
@ dr_aligned
Definition tree-vectorizer.h:57
@ dr_explicit_realign
Definition tree-vectorizer.h:55
@ dr_unaligned_unsupported
Definition tree-vectorizer.h:53
operation_type
Definition tree-vectorizer.h:45
@ ternary_op
Definition tree-vectorizer.h:48
@ unary_op
Definition tree-vectorizer.h:46
@ binary_op
Definition tree-vectorizer.h:47
vect_memory_access_type
Definition tree-vectorizer.h:176
@ VMAT_STRIDED_SLP
Definition tree-vectorizer.h:205
@ VMAT_GATHER_SCATTER_LEGACY
Definition tree-vectorizer.h:208
@ VMAT_GATHER_SCATTER_EMULATED
Definition tree-vectorizer.h:210
@ VMAT_INVARIANT
Definition tree-vectorizer.h:180
@ VMAT_UNINITIALIZED
Definition tree-vectorizer.h:177
@ VMAT_ELEMENTWISE
Definition tree-vectorizer.h:199
@ VMAT_GATHER_SCATTER_IFN
Definition tree-vectorizer.h:209
@ VMAT_CONTIGUOUS_DOWN
Definition tree-vectorizer.h:188
@ VMAT_CONTIGUOUS
Definition tree-vectorizer.h:183
@ VMAT_LOAD_STORE_LANES
Definition tree-vectorizer.h:195
@ VMAT_CONTIGUOUS_REVERSE
Definition tree-vectorizer.h:192
slp_vect_type
Definition tree-vectorizer.h:1493
@ not_vect
Definition tree-vectorizer.h:1494
@ pure_slp
Definition tree-vectorizer.h:1495
vect_reduction_type
Definition tree-vectorizer.h:93
@ TREE_CODE_REDUCTION
Definition tree-vectorizer.h:94
@ FOLD_LEFT_REDUCTION
Definition tree-vectorizer.h:112
@ EXTRACT_LAST_REDUCTION
Definition tree-vectorizer.h:104
@ INTEGER_INDUC_COND_REDUCTION
Definition tree-vectorizer.h:96
@ CONST_COND_REDUCTION
Definition tree-vectorizer.h:97
@ COND_REDUCTION
Definition tree-vectorizer.h:95
bool operator==(const match_elt_t &m, const match_elt_t &m2)
Definition tree-vectorizer.h:327
auto_vec< rgroup_controls > vec_loop_lens
Definition tree-vectorizer.h:863
void set_dr_misalignment(dr_vec_info *dr_info, int val)
Definition tree-vectorizer.h:2181
bool vect_use_mask_type_p(stmt_vec_info stmt_info)
Definition tree-vectorizer.h:2008
pair_hash< nofree_ptr_hash< _slp_tree >, nofree_ptr_hash< _slp_tree > > slp_node_hash
Definition tree-vectorizer.h:2846
hash_map< tree_operand_hash, std::pair< stmt_vec_info, innermost_loop_behavior * > > vec_base_alignments
Definition tree-vectorizer.h:137
unsigned add_stmt_cost(vector_costs *costs, int count, enum vect_cost_for_stmt kind, stmt_vec_info stmt_info, slp_tree node, tree vectype, int misalign, enum vect_cost_model_location where)
Definition tree-vectorizer.h:2127
vec< stmt_info_for_cost > stmt_vector_for_cost
Definition tree-vectorizer.h:131
bool known_alignment_for_access_p(dr_vec_info *dr_info, tree vectype)
Definition tree-vectorizer.h:2251
#define DR_GROUP_FIRST_ELEMENT(S)
Definition tree-vectorizer.h:1767
hash_set< tree_cond_mask_hash > vec_cond_masked_set_type
Definition tree-vectorizer.h:597
tree get_dr_vinfo_offset(vec_info *vinfo, dr_vec_info *dr_info, bool check_outer=false)
Definition tree-vectorizer.h:2292
int vect_reduc_type(vec_info *vinfo, slp_tree node)
Definition tree-vectorizer.h:2940
bool aligned_access_p(dr_vec_info *dr_info, tree vectype)
Definition tree-vectorizer.h:2241
unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t)
Definition tree.cc:6714
#define TYPE_ALIGN_UNIT(NODE)
Definition tree.h:2534
poly_uint64 TYPE_VECTOR_SUBPARTS(const_tree node)
Definition tree.h:4450
#define TYPE_PRECISION(NODE)
Definition tree.h:2440
#define TREE_OPERAND(NODE, I)
Definition tree.h:1336
#define sizetype
Definition tree.h:5340
#define TREE_CODE_CLASS(CODE)
Definition tree.h:203
#define TYPE_SIZE_UNIT(NODE)
Definition tree.h:2437
#define CONVERT_EXPR_CODE_P(CODE)
Definition tree.h:554
#define TREE_TYPE(NODE)
Definition tree.h:513
#define INTEGRAL_TYPE_P(TYPE)
Definition tree.h:614
#define COMPARISON_CLASS_P(NODE)
Definition tree.h:257
#define NULL_TREE
Definition tree.h:318
#define FOR_EACH_VEC_ELT(V, I, P)
Definition vec.h:1895
constexpr vnull vNULL
Definition vec.h:569
generic_wide_int< widest_int_storage< WIDEST_INT_MAX_PRECISION > > widest_int
Definition wide-int.h:345
generic_wide_int< wide_int_storage > wide_int
Definition wide-int.h:343