Reapply "[IR] Reject unhandled assume bundles and seperate them from normal attributes" (#202336) (#202355)
The crash is fixed by checking for equality of value and assumption
instead of asserting it.
Original message:
This patch introduces the concepts of bundle attributes and updates
the code base to use them in most places where assume bundles are
handled.
The notable exception is the knowledge retention API, since it tries to
be generic for attributes. However, the `--assume-preserve-all` flag is
removed, since all attributes not listed in the bundle attributes are
rejected by the verifier now. This shouldn't be a huge problem, since
any
attributes not listed there were completely unused. New functions with
the
naming scheme `getAssume<AttrName>Info` are also added for attributes
which
are used without having to enable experimental features.
This reverts commit d11a71905634e8fee7f4ab9c489317cccc23e0ad.