SILValue.h/.cpp just defines the SIL base classes. Referring to specific instructions is a (small) kind of layering violation. Also I want to keep SILValue small so that it is really just a type alias of ValueBase*. NFC.