mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-03 19:02:35 +00:00
Move constructors out-of-line and flesh out their documentation. No
functionality changed. This is in preparation for some refactoring of how this class behaves. llvm-svn: 150941
This commit is contained in:
parent
c7e2bbf39f
commit
132aecc08e
@ -136,18 +136,13 @@ public:
|
||||
/// @name Constructors
|
||||
/// @{
|
||||
|
||||
/// \brief Default constructor produces an empty, invalid triple.
|
||||
Triple() : Data(), Arch(InvalidArch) {}
|
||||
explicit Triple(const Twine &Str) : Data(Str.str()), Arch(InvalidArch) {}
|
||||
Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr)
|
||||
: Data((ArchStr + Twine('-') + VendorStr + Twine('-') + OSStr).str()),
|
||||
Arch(InvalidArch) {
|
||||
}
|
||||
|
||||
explicit Triple(const Twine &Str);
|
||||
Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr);
|
||||
Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr,
|
||||
const Twine &EnvironmentStr)
|
||||
: Data((ArchStr + Twine('-') + VendorStr + Twine('-') + OSStr + Twine('-') +
|
||||
EnvironmentStr).str()), Arch(InvalidArch) {
|
||||
}
|
||||
const Twine &EnvironmentStr);
|
||||
|
||||
/// @}
|
||||
/// @name Normalization
|
||||
|
@ -215,8 +215,6 @@ const char *Triple::getArchNameForAssembler() {
|
||||
.Default(NULL);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
Triple::ArchType Triple::ParseArch(StringRef ArchName) {
|
||||
return StringSwitch<ArchType>(ArchName)
|
||||
.Cases("i386", "i486", "i586", "i686", x86)
|
||||
@ -304,6 +302,38 @@ void Triple::Parse() const {
|
||||
assert(isInitialized() && "Failed to initialize!");
|
||||
}
|
||||
|
||||
/// \brief Construct a triple from the string representation provided.
|
||||
///
|
||||
/// This doesn't actually parse the string representation eagerly. Instead it
|
||||
/// stores it, and tracks the fact that it hasn't been parsed. The first time
|
||||
/// any of the structural queries are made, the string is parsed and the
|
||||
/// results cached in various members.
|
||||
Triple::Triple(const Twine &Str) : Data(Str.str()), Arch(InvalidArch) {}
|
||||
|
||||
/// \brief Construct a triple from string representations of the architecture,
|
||||
/// vendor, and OS.
|
||||
///
|
||||
/// This doesn't actually use these already distinct strings to setup the
|
||||
/// triple information. Instead it joins them into a canonical form of a triple
|
||||
/// string, and lazily parses it on use.
|
||||
Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr)
|
||||
: Data((ArchStr + Twine('-') + VendorStr + Twine('-') + OSStr).str()),
|
||||
Arch(InvalidArch) {
|
||||
}
|
||||
|
||||
/// \brief Construct a triple from string representations of the architecture,
|
||||
/// vendor, OS, and environment.
|
||||
///
|
||||
/// This doesn't actually use these already distinct strings to setup the
|
||||
/// triple information. Instead it joins them into a canonical form of a triple
|
||||
/// string, and lazily parses it on use.
|
||||
Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr,
|
||||
const Twine &EnvironmentStr)
|
||||
: Data((ArchStr + Twine('-') + VendorStr + Twine('-') + OSStr + Twine('-') +
|
||||
EnvironmentStr).str()),
|
||||
Arch(InvalidArch) {
|
||||
}
|
||||
|
||||
std::string Triple::normalize(StringRef Str) {
|
||||
// Parse into components.
|
||||
SmallVector<StringRef, 4> Components;
|
||||
|
Loading…
x
Reference in New Issue
Block a user