> Unique, but uncommon.
Right.
> Thus, it would make sense to make it a union with the other
> information with a discriminator. As a plus, you'd be able to tell
> variable offset fields by checking a single bit instead of a load
> (TREE_CODE <whatevever>).
>
> IE
> unsigned int: offset_is_variable:1;
> union {
> tree offset_when_variable;
> unsigned HOST_WIDE_INT offset_when constant;
> }
I don't follow. The current representation of variable-position fields uses
*both* fields, a variable offset in *bytes*, plus a constant offset in *bits*.
Yes, you can use a narrower integer for the bit offset in the variable
case, but I don't follow how that would save anything.
> Most of our optimizers just want to know "is this variable
> size/variable offset", not "what is the variable offset".
Testing TREE_CONSTANT of the offset says that right now.