MaxTargetFixupKind -- why is it so limiting?


I wonder why MaxTargetFixupKind (include/llvm/MC/MCFixup.h) limiting
user-specific fixup kinds to 128 (i.e. MaxTargetFixupKind -

  FirstTargetFixupKind = 128,

  // Limit range of target fixups, in case we want to pack more efficiently
  // later.
  MaxTargetFixupKind = (1 << 8)

May this be done backend dependent?

How many different KINDS of fixup do you really need? As they are target-specific, each target can indeed have 127 or 128 of them (not sure if the max is inclusive or exclusive) - there are 20 different “common” ones, and I don’t really see what an architecture would look like that has a huge number more than that.

If there is a specific and useful purpose to increase them, I expect that can be done, but my personal opinion would be that it seems unnecessary to change this - at least without understanding what the use-case is for this. [And should one particular architecture have an extreme number of fixup variations, I would imagine that there are other better solutions, e.g. grouping them into groups and then having other metadata to represent the variant internally in that metadata].