[PATCH] Replace the bitfield of SubtargetFeatures with a BitVector

Michael Kuperstein michael.m.kuperstein at intel.com
Thu Feb 19 07:23:36 PST 2015

These are two distinct bitfields - one for subtarget features, and one for "available features", which are a subset of the target features that participate in instruction matching in AsmParser.  As far as I know, no platform is close to the 64-bit limit in terms of available features right now.
There is no requirement for these two to be in sync. In fact, for a very long time, they weren't. SubtargetFeatures has been upgraded from 32-bit to 64-bit at r129590 (April 2011). AvailableFeatures was only upgraded to 64-bit in r215887 (August 2014). 
The translation from SubtargetFeatures to AvailableFeatures is performed by ComputeAvailableFeatures(). To the best of my understanding, there has never been a way to recover the subtarget features back from the available features. This makes sense to me, since the transformation is lossy.

In any case, once this actually works (see separate email about revert due to ARM/MIPS/PPC issues), we can also think about an equivalent patch for available features, but I'm not sure that's necessary in the short term.




More information about the llvm-commits mailing list