[llvm-commits] [llvm] r72335 - in /llvm/trunk: include/llvm/Target/SubtargetFeature.h lib/Target/ARM/ARMSubtarget.cpp lib/Target/ARM/ARMSubtarget.h lib/Target/Alpha/AlphaSubtarget.h lib/Target/CellSPU/SPUSubtarget.h lib/Target/MSP430/MSP430Subtarget.h lib/Target/Mips/MipsSubtarget.h lib/Target/PIC16/PIC16Subtarget.h lib/Target/PowerPC/PPCSubtarget.h lib/Target/Sparc/SparcSubtarget.h lib/Target/SubtargetFeature.cpp lib/Target/X86/X86Subtarget.h lib/Target/XCore/XCoreSubtarget.h utils/TableGen/SubtargetEmitter.cpp
Anton Korobeynikov
asl at math.spbu.ru
Sat May 23 12:50:51 PDT 2009
Author: asl
Date: Sat May 23 14:50:50 2009
New Revision: 72335
URL: http://llvm.org/viewvc/llvm-project?rev=72335&view=rev
Log:
Propagate CPU string out of SubtargetFeatures
Modified:
llvm/trunk/include/llvm/Target/SubtargetFeature.h
llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp
llvm/trunk/lib/Target/ARM/ARMSubtarget.h
llvm/trunk/lib/Target/Alpha/AlphaSubtarget.h
llvm/trunk/lib/Target/CellSPU/SPUSubtarget.h
llvm/trunk/lib/Target/MSP430/MSP430Subtarget.h
llvm/trunk/lib/Target/Mips/MipsSubtarget.h
llvm/trunk/lib/Target/PIC16/PIC16Subtarget.h
llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h
llvm/trunk/lib/Target/Sparc/SparcSubtarget.h
llvm/trunk/lib/Target/SubtargetFeature.cpp
llvm/trunk/lib/Target/X86/X86Subtarget.h
llvm/trunk/lib/Target/XCore/XCoreSubtarget.h
llvm/trunk/utils/TableGen/SubtargetEmitter.cpp
Modified: llvm/trunk/include/llvm/Target/SubtargetFeature.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/SubtargetFeature.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Target/SubtargetFeature.h (original)
+++ llvm/trunk/include/llvm/Target/SubtargetFeature.h Sat May 23 14:50:50 2009
@@ -82,10 +82,13 @@
/// Set the CPU string. Replaces previous setting. Setting to "" clears CPU.
void setCPU(const std::string &String);
-
+
/// Setting CPU string only if no string is set.
void setCPUIfNone(const std::string &String);
-
+
+ /// Returns current CPU string.
+ const std::string & getCPU() const;
+
/// Adding Features.
void AddFeature(const std::string &String, bool IsEnabled = true);
Modified: llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp Sat May 23 14:50:50 2009
@@ -23,14 +23,13 @@
, UseThumbBacktraces(false)
, IsR9Reserved(false)
, stackAlignment(4)
+ , CPUString("generic")
, TargetType(isELF) // Default to ELF unless otherwise specified.
, TargetABI(ARM_ABI_APCS) {
-
// Determine default and user specified characteristics
- std::string CPU = "generic";
// Parse features string.
- ParseSubtargetFeatures(FS, CPU);
+ CPUString = ParseSubtargetFeatures(FS, CPUString);
// Set the boolean corresponding to the current target triple, or the default
// if one cannot be determined, to true.
Modified: llvm/trunk/lib/Target/ARM/ARMSubtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMSubtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMSubtarget.h (original)
+++ llvm/trunk/lib/Target/ARM/ARMSubtarget.h Sat May 23 14:50:50 2009
@@ -47,6 +47,9 @@
/// entry to the function and which must be maintained by every function.
unsigned stackAlignment;
+ /// CPUString - String name of used CPU.
+ std::string CPUString;
+
public:
enum {
isELF, isDarwin
@@ -71,7 +74,8 @@
}
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
bool hasV4TOps() const { return ARMArchVersion >= V4T; }
bool hasV5TOps() const { return ARMArchVersion >= V5T; }
@@ -79,7 +83,7 @@
bool hasV6Ops() const { return ARMArchVersion >= V6; }
bool hasVFP2() const { return HasVFP2; }
-
+
bool isTargetDarwin() const { return TargetType == isDarwin; }
bool isTargetELF() const { return TargetType == isELF; }
@@ -91,6 +95,8 @@
bool useThumbBacktraces() const { return UseThumbBacktraces; }
bool isR9Reserved() const { return IsR9Reserved; }
+ const std::string & getCPUString() const { return CPUString; }
+
/// getStackAlignment - Returns the minimum alignment known to hold of the
/// stack frame on entry to the function and which must be maintained by every
/// function for this subtarget.
Modified: llvm/trunk/lib/Target/Alpha/AlphaSubtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Alpha/AlphaSubtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Alpha/AlphaSubtarget.h (original)
+++ llvm/trunk/lib/Target/Alpha/AlphaSubtarget.h Sat May 23 14:50:50 2009
@@ -37,7 +37,8 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
bool hasCT() const { return HasCT; }
};
Modified: llvm/trunk/lib/Target/CellSPU/SPUSubtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CellSPU/SPUSubtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/CellSPU/SPUSubtarget.h (original)
+++ llvm/trunk/lib/Target/CellSPU/SPUSubtarget.h Sat May 23 14:50:50 2009
@@ -59,8 +59,9 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
-
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
+
/// SetJITMode - This is called to inform the subtarget info that we are
/// producing code for the JIT.
void SetJITMode();
Modified: llvm/trunk/lib/Target/MSP430/MSP430Subtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430Subtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/MSP430/MSP430Subtarget.h (original)
+++ llvm/trunk/lib/Target/MSP430/MSP430Subtarget.h Sat May 23 14:50:50 2009
@@ -33,7 +33,8 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
};
} // End llvm namespace
Modified: llvm/trunk/lib/Target/Mips/MipsSubtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsSubtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/MipsSubtarget.h (original)
+++ llvm/trunk/lib/Target/Mips/MipsSubtarget.h Sat May 23 14:50:50 2009
@@ -109,7 +109,8 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
bool hasMips2Ops() const { return MipsArchVersion >= Mips2; }
Modified: llvm/trunk/lib/Target/PIC16/PIC16Subtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PIC16/PIC16Subtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/PIC16/PIC16Subtarget.h (original)
+++ llvm/trunk/lib/Target/PIC16/PIC16Subtarget.h Sat May 23 14:50:50 2009
@@ -37,7 +37,8 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
};
} // End llvm namespace
Modified: llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h (original)
+++ llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h Sat May 23 14:50:50 2009
@@ -86,7 +86,9 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
+
/// SetJITMode - This is called to inform the subtarget info that we are
/// producing code for the JIT.
Modified: llvm/trunk/lib/Target/Sparc/SparcSubtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcSubtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Sparc/SparcSubtarget.h (original)
+++ llvm/trunk/lib/Target/Sparc/SparcSubtarget.h Sat May 23 14:50:50 2009
@@ -33,8 +33,9 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
-
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
+
};
} // end namespace llvm
Modified: llvm/trunk/lib/Target/SubtargetFeature.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SubtargetFeature.cpp?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SubtargetFeature.cpp (original)
+++ llvm/trunk/lib/Target/SubtargetFeature.cpp Sat May 23 14:50:50 2009
@@ -186,7 +186,7 @@
}
-/// setCPU - Set the CPU string. Replaces previous setting. Setting to ""
+/// setCPU - Set the CPU string. Replaces previous setting. Setting to ""
/// clears CPU.
void SubtargetFeatures::setCPU(const std::string &String) {
Features[0] = LowercaseString(String);
@@ -199,9 +199,16 @@
if (Features[0].empty()) setCPU(String);
}
+/// getCPU - Returns current CPU.
+///
+const std::string & SubtargetFeatures::getCPU() const {
+ return Features[0];
+}
+
+
/// SetImpliedBits - For each feature that is (transitively) implied by this
/// feature, set it.
-///
+///
static
void SetImpliedBits(uint32_t &Bits, const SubtargetFeatureKV *FeatureEntry,
const SubtargetFeatureKV *FeatureTable,
Modified: llvm/trunk/lib/Target/X86/X86Subtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Subtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86Subtarget.h (original)
+++ llvm/trunk/lib/Target/X86/X86Subtarget.h Sat May 23 14:50:50 2009
@@ -108,7 +108,8 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
/// AutoDetectSubtargetFeatures - Auto-detect CPU features using CPUID
/// instruction.
Modified: llvm/trunk/lib/Target/XCore/XCoreSubtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/XCoreSubtarget.h?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/lib/Target/XCore/XCoreSubtarget.h (original)
+++ llvm/trunk/lib/Target/XCore/XCoreSubtarget.h Sat May 23 14:50:50 2009
@@ -38,7 +38,8 @@
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+ std::string ParseSubtargetFeatures(const std::string &FS,
+ const std::string &CPU);
};
} // End llvm namespace
Modified: llvm/trunk/utils/TableGen/SubtargetEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/SubtargetEmitter.cpp?rev=72335&r1=72334&r2=72335&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/SubtargetEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/SubtargetEmitter.cpp Sat May 23 14:50:50 2009
@@ -451,7 +451,7 @@
OS << "// ParseSubtargetFeatures - Parses features string setting specified\n"
<< "// subtarget options.\n"
- << "void llvm::";
+ << "std::string llvm::";
OS << Target;
OS << "Subtarget::ParseSubtargetFeatures(const std::string &FS,\n"
<< " const std::string &CPU) {\n"
@@ -481,11 +481,12 @@
<< "Features.getInfo(ProcItinKV, ProcItinKVSize);\n"
<< " InstrItins = InstrItineraryData(Stages, Itinerary);\n";
}
-
- OS << "}\n";
+
+ OS << " return Features.getCPU();\n"
+ << "}\n";
}
-//
+//
// SubtargetEmitter::run - Main subtarget enumeration emitter.
//
void SubtargetEmitter::run(std::ostream &OS) {
More information about the llvm-commits
mailing list