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