Autogen subtarget information from .td files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23904 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-10-23 22:15:34 +00:00
parent 5882e40ded
commit ed465f5407
2 changed files with 13 additions and 36 deletions

View File

@ -16,46 +16,22 @@
#include "llvm/Module.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Target/SubtargetFeature.h"
#include "llvm/Support/Debug.h"
#include "AlphaGenSubtarget.inc"
using namespace llvm;
enum AlphaFeature {
AlphaFeatureCIX = 1 << 0,
AlphaFeatureFIX = 1 << 1,
enum {
FeatureKVSize = sizeof(FeatureKV) / sizeof(SubtargetFeatureKV),
SubTypeKVSize = sizeof(SubTypeKV) / sizeof(SubtargetFeatureKV)
};
/// Sorted (by key) array of values for CPU subtype.
static const SubtargetFeatureKV AlphaSubTypeKV[] = {
{ "ev56" , "Select the Alpha EV56 processor", 0 },
{ "ev6" , "Select the Alpha EV6 processor", AlphaFeatureFIX },
{ "ev67" , "Select the Alpha EV67 processor", AlphaFeatureFIX | AlphaFeatureCIX },
{ "generic", "Select instructions for a generic Alpha processor (EV56)", 0 },
{ "pca56" , "Select the Alpha PCA56 processor", 0 },
};
/// Length of AlphaSubTypeKV.
static const unsigned AlphaSubTypeKVSize = sizeof(AlphaSubTypeKV)
/ sizeof(SubtargetFeatureKV);
/// Sorted (by key) array of values for CPU features.
static SubtargetFeatureKV AlphaFeatureKV[] = {
{ "CIX", "Should CIX extentions be used" , AlphaFeatureCIX },
{ "FIX" , "Should FIX extentions be used" , AlphaFeatureFIX },
};
/// Length of AlphaFeatureKV.
static const unsigned AlphaFeatureKVSize = sizeof(AlphaFeatureKV)
/ sizeof(SubtargetFeatureKV);
AlphaSubtarget::AlphaSubtarget(const Module &M, const std::string &FS)
:HasF2I(false), HasCT(false)
{
: HasF2I(false), HasCT(false) {
std::string CPU = "generic";
uint32_t Bits =
SubtargetFeatures::Parse(FS, CPU,
AlphaSubTypeKV, AlphaSubTypeKVSize,
AlphaFeatureKV, AlphaFeatureKVSize);
HasF2I = (Bits & AlphaFeatureFIX) != 0;
HasCT = (Bits & AlphaFeatureCIX) != 0;
SubtargetFeatures::Parse(FS, CPU,
SubTypeKV, SubTypeKVSize,
FeatureKV, FeatureKVSize);
HasF2I = (Bits & FeatureFIX) != 0;
HasCT = (Bits & FeatureCIX) != 0;
}

View File

@ -14,6 +14,7 @@ TARGET = Alpha
BUILT_SOURCES = AlphaGenRegisterInfo.h.inc AlphaGenRegisterNames.inc \
AlphaGenRegisterInfo.inc AlphaGenInstrNames.inc \
AlphaGenInstrInfo.inc AlphaGenCodeEmitter.inc \
AlphaGenAsmWriter.inc AlphaGenDAGISel.inc
AlphaGenAsmWriter.inc AlphaGenDAGISel.inc \
AlphaGenSubtarget.inc
include $(LEVEL)/Makefile.common