*参照元 [#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]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS