*参照元 [#bb6ca789] #backlinks *説明 [#yaa33bf9] -パス: [[gcc-8.3/gcc/tree.c]] -FIXME: これは何? --説明 **引数 [#zb79b2d9] -tree innertype -- --[[gcc-8.3/gcc/tree]] -poly_int64 nunits -- --[[gcc-8.3/gcc/poly_int64]] -machine_mode mode -- --[[gcc-8.3/gcc/machine_mode]] **返り値 [#ya5f5869] -tree -- **参考 [#a4f2ed76] *実装 [#d3cbccc1] /* Create a new vector type node holding NUNITS units of type INNERTYPE, and mapped to the machine mode MODE. Initialize its fields and build the information necessary for debugging output. */ static tree make_vector_type (tree innertype, poly_int64 nunits, machine_mode mode) { tree t; tree mv_innertype = TYPE_MAIN_VARIANT (innertype); - --[[gcc-8.3/gcc/TYPE_MAIN_VARIANT()]] t = make_node (VECTOR_TYPE); TREE_TYPE (t) = mv_innertype; SET_TYPE_VECTOR_SUBPARTS (t, nunits); SET_TYPE_MODE (t, mode); - --[[gcc-8.3/gcc/make_node()]] --[[gcc-8.3/gcc/TREE_TYPE()]] --[[gcc-8.3/gcc/SET_TYPE_VECTOR_SUBPARTS()]] --[[gcc-8.3/gcc/SET_TYPE_MODE()]] if (TYPE_STRUCTURAL_EQUALITY_P (mv_innertype) || in_lto_p) SET_TYPE_STRUCTURAL_EQUALITY (t); else if ((TYPE_CANONICAL (mv_innertype) != innertype || mode != VOIDmode) && !VECTOR_BOOLEAN_TYPE_P (t)) TYPE_CANONICAL (t) = make_vector_type (TYPE_CANONICAL (mv_innertype), nunits, VOIDmode); - --[[gcc-8.3/gcc/TYPE_STRUCTURAL_EQUALITY_P()]] --[[gcc-8.3/gcc/SET_TYPE_STRUCTURAL_EQUALITY()]] --[[gcc-8.3/gcc/TYPE_CANONICAL()]] --[[gcc-8.3/gcc/VECTOR_BOOLEAN_TYPE_P()]] --[[gcc-8.3/gcc/make_vector_type()]] layout_type (t); hashval_t hash = type_hash_canon_hash (t); t = type_hash_canon (hash, t); - --[[gcc-8.3/gcc/layout_type()]] --[[gcc-8.3/gcc/hashval_t]] --[[gcc-8.3/gcc/type_hash_canon_hash()]] --[[gcc-8.3/gcc/type_hash_canon()]] /* We have built a main variant, based on the main variant of the inner type. Use it to build the variant we return. */ if ((TYPE_ATTRIBUTES (innertype) || TYPE_QUALS (innertype)) && TREE_TYPE (t) != innertype) return build_type_attribute_qual_variant (t, TYPE_ATTRIBUTES (innertype), TYPE_QUALS (innertype)); return t; } - --[[gcc-8.3/gcc/TYPE_ATTRIBUTES()]] --[[gcc-8.3/gcc/TYPE_QUALS()]] --[[gcc-8.3/gcc/TREE_TYPE()]] --[[gcc-8.3/gcc/build_type_attribute_qual_variant()]] *コメント [#a3214552]