[PATCH] Introduce MODE_SIZE mode attribute

Joseph S. Myers joseph@codesourcery.com
Fri Jan 3 15:39:00 GMT 2014

On Fri, 3 Jan 2014, Jakub Jelinek wrote:

> I've noticed that especially with the AVX512F introduction we use
> GET_MODE_SIZE (<MODE>mode) quite heavily in the i386 *.md files, and
> the problem with that is GET_MODE_SIZE isn't a compile time constant,
> needs to read mode_size array (non-const) at runtime.

It would seem better to me for genmodes to generate appropriate macro / 
inline function definitions that can be used by GET_MODE_SIZE (along the 
lines of (__builtin_constant_p (MODE) && !mode_size_variable (MODE) ? 
get_mode_size_constant (MODE) : (unsigned short) mode_size[MODE]), where 
mode_size_variable and get_mode_size_constant are always_inline functions 
generated by genmodes) - that way all targets are covered automatically, 
without needing such duplication of mode sizes.  (Of course such 
optimizations wouldn't apply for a first-stage compiler bootstrapped by a 
compiler not supporting __builtin_constant_p, but lack of optimization in 
the first stage of a bootstrap is not a particular concern.)

Joseph S. Myers

More information about the Gcc-patches mailing list