This patch is based on a patch that implements initial serialization of machine basic blocks (http://reviews.llvm.org/D10465).
This patch is the initial patch for machine instruction serialization. Only the machine instruction names are serialized by this patch. The instructions are represented using a YAML sequence of string literals and are a part of machine basic block YAML mapping. An example of such MBB mapping is shown below:
name: entry instructions: - mov32r0 - retq
A machine instruction parser class 'MIParser' is introduced by this patch. This class will be used to parse the machine instructions. A supporting machine instruction lexing class will be added in the upcoming patch.
Why lower-case? I'd much prefer the exact same as the C++/MI enums/names. And if no one else does this lowercasing already (I don't think so), this can introduce ambiguity (it will).