> 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.

Reply via email to