Finish removal of IRInstruction::m_type, and remove ExtendedInstruction
Finishes moving value types from IRInstruction into SSATmp
(changing the other m_type uses to use m_typeParam), and allows any
instruction to have any number of srcs. Also consolidates creation
overloads for out different IRInstruction shapes into one helper, so
we need fewer constructors/wrappers. Adds an outputType() routine
that gives the return type of an instruction given its src types and
type parameter. (We may want to change outputType() and
assertOperandTypes() to be table-driven---I was initially expecting
more instructions would have logic there, but they are all really
simple.)
19 files changed: