*参照元 [#o121e66f] #backlinks *説明 [#t96309af] -パス: [[gcc-8.3/gcc/tree.c]] -FIXME: これは何? --説明 **引数 [#a0657202] - -- **返り値 [#w9bb9caa] - -- **参考 [#f465d5c8] *実装 [#m78f6509] /* Vector types need to re-check the target flags each time we report the machine mode. We need to do this because attribute target can change the result of vector_mode_supported_p and have_regs_of_mode on a per-function basis. Thus the TYPE_MODE of a VECTOR_TYPE can change on a per-function basis. */ /* ??? Possibly a better solution is to run through all the types referenced by a function and re-compute the TYPE_MODE once, rather than make the TYPE_MODE macro call a function. */ machine_mode vector_type_mode (const_tree t) { machine_mode mode; gcc_assert (TREE_CODE (t) == VECTOR_TYPE); - --[[gcc-8.3/gcc/machine_mode]] --[[gcc-8.3/gcc/gcc_assert()]] --[[gcc-8.3/gcc/TREE_CODE()]] mode = t->type_common.mode; if (VECTOR_MODE_P (mode) && (!targetm.vector_mode_supported_p (mode) || !have_regs_of_mode[mode])) { scalar_int_mode innermode; - --[[gcc-8.3/gcc/VECTOR_MODE_P()]] --[[gcc-8.3/gcc/scalar_int_mode]] /* For integers, try mapping it to a same-sized scalar mode. */ if (is_int_mode (TREE_TYPE (t)->type_common.mode, &innermode)) { poly_int64 size = (TYPE_VECTOR_SUBPARTS (t) * GET_MODE_BITSIZE (innermode)); scalar_int_mode mode; if (int_mode_for_size (size, 0).exists (&mode) && have_regs_of_mode[mode]) return mode; } - --[[gcc-8.3/gcc/is_int_mode()]] --[[gcc-8.3/gcc/TREE_TYPE()]] --[[gcc-8.3/gcc/poly_int64]] --[[gcc-8.3/gcc/TYPE_VECTOR_SUBPARTS()]] --[[gcc-8.3/gcc/GET_MODE_BITSIZE()]] --[[gcc-8.3/gcc/scalar_int_mode]] --[[gcc-8.3/gcc/int_mode_for_size()]] return BLKmode; } return mode; } *コメント [#c9683810]