Hello, On 21 Oct 11:17, Richard Biener wrote: > On Mon, Oct 20, 2014 at 3:50 PM, Jakub Jelinek <ja...@redhat.com> wrote: > > On Mon, Oct 20, 2014 at 05:41:25PM +0400, Kirill Yukhin wrote: > >> Hello, > >> This patch adds (almost) all built-ins needed by > >> AVX-512VL,BW,DQ intrinsics. > >> > >> Main questionable hunk is: > >> > >> diff --git a/gcc/tree-core.h b/gcc/tree-core.h > >> index b69312b..a639487 100644 > >> --- a/gcc/tree-core.h > >> +++ b/gcc/tree-core.h > >> @@ -1539,7 +1539,7 @@ struct GTY(()) tree_function_decl { > >> DECL_FUNCTION_CODE. Otherwise unused. > >> ??? The bitfield needs to be able to hold all target function > >> codes as well. */ > >> - ENUM_BITFIELD(built_in_function) function_code : 11; > >> + ENUM_BITFIELD(built_in_function) function_code : 12; > >> ENUM_BITFIELD(built_in_class) built_in_class : 2; > >> > >> unsigned static_ctor_flag : 1; > > > > Well, decl_with_vis has 15 unused bits, so instead of growing > > FUNCTION_DECL significantly, might be better to move one of the > > flags to decl_with_vis and just document that it applies to FUNCTION_DECLs > > only. Or move some flag to cgraph if possible. > > > > But seeing e.g. > > IX86_BUILTIN_FIXUPIMMPD256, IX86_BUILTIN_FIXUPIMMPD256_MASK, > > IX86_BUILTIN_FIXUPIMMPD256_MASKZ > > etc. I wonder if you really need that many builtins, weren't we adding > > for avx512f just single builtin instead of 3 different ones, always > > providing mask argument and depending on whether it is all ones, etc. > > figuring out what kind of masking should be performed? > > If only we had no lang-specific flags in tree_base we could use > the same place as we use for internal function code ... > > But yes, not using that many builtins in the first place is preferred > for example by making them type-generic and/or variadic. We might try to refactor x86 built-ins toward type-generic approach, but I think it can be postponed to 6.x release series.
-- Thanks, K > > Richard. > > > Jakub