From: Chris Lattner Date: Sun, 23 Oct 2005 22:15:34 +0000 (+0000) Subject: Autogen subtarget information from .td files. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ed465f54077d78172a84eff8195adfbfa3117ceb;p=oota-llvm.git Autogen subtarget information from .td files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23904 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Alpha/AlphaSubtarget.cpp b/lib/Target/Alpha/AlphaSubtarget.cpp index 15f51c46014..3cbdcb269b2 100644 --- a/lib/Target/Alpha/AlphaSubtarget.cpp +++ b/lib/Target/Alpha/AlphaSubtarget.cpp @@ -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, -}; -/// 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 }, +enum { + FeatureKVSize = sizeof(FeatureKV) / sizeof(SubtargetFeatureKV), + SubTypeKVSize = sizeof(SubTypeKV) / sizeof(SubtargetFeatureKV) }; -/// 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; } diff --git a/lib/Target/Alpha/Makefile b/lib/Target/Alpha/Makefile index 836268b551d..bb9895a30b3 100644 --- a/lib/Target/Alpha/Makefile +++ b/lib/Target/Alpha/Makefile @@ -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