As described in https://reviews.llvm.org/D45576, this patch creates a new PseudoSourceValue category intended to represent the target floating-point status, specifically the changes to global state that may be *caused* by the instruction, e.g. setting exception status bits or triggering a trap.
The idea is to model these aspects of global floating-point state as "memory" of a special type, even if it may be held in a special register on actual hardware, in order to avoid having to introduce a new type of dependency throughout LLVM. Modeling as memory object should be OK to get the dependencies we need correct.
This class will be used with memory operands attached to strict floating-point instructions at the DAG and MI level.
Patch split off from D45576 to simplify review, but this patch on its own isn't really useful and will only be committed together with D45576 (assuming both are approved).