LLVM: llvm::StringSwitch< T, R > Class Template Reference (original) (raw)

A switch()-like statement whose cases are string literals. More...

#include "[llvm/ADT/StringSwitch.h](StringSwitch%5F8h%5Fsource.html)"

Public Member Functions
StringSwitch (StringRef S)
StringSwitch (StringSwitch &&)=default
StringSwitch (const StringSwitch &)=delete
void operator= (const StringSwitch &)=delete
void operator= (StringSwitch &&)=delete
StringSwitch & Case (StringLiteral S, T Value)
StringSwitch & EndsWith (StringLiteral S, T Value)
StringSwitch & StartsWith (StringLiteral S, T Value)
StringSwitch & Cases (std::initializer_list< StringLiteral > CaseStrings, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, StringLiteral S2, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, StringLiteral S5, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, StringLiteral S5, StringLiteral S6, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, StringLiteral S5, StringLiteral S6, StringLiteral S7, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, StringLiteral S5, StringLiteral S6, StringLiteral S7, StringLiteral S8, T Value)
StringSwitch & Cases (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, StringLiteral S5, StringLiteral S6, StringLiteral S7, StringLiteral S8, StringLiteral S9, T Value)
StringSwitch & CaseLower (StringLiteral S, T Value)
StringSwitch & EndsWithLower (StringLiteral S, T Value)
StringSwitch & StartsWithLower (StringLiteral S, T Value)
StringSwitch & CasesLower (std::initializer_list< StringLiteral > CaseStrings, T Value)
StringSwitch & CasesLower (StringLiteral S0, StringLiteral S1, T Value)
StringSwitch & CasesLower (StringLiteral S0, StringLiteral S1, StringLiteral S2, T Value)
StringSwitch & CasesLower (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, T Value)
StringSwitch & CasesLower (StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, T Value)
R Default (T Value)
R DefaultUnreachable (const char *Message="Fell off the end of a string-switch")
Declare default as unreachable, making sure that all cases were handled.
operator R ()

template<typename T, typename R = T>
class llvm::StringSwitch< T, R >

A switch()-like statement whose cases are string literals.

The StringSwitch class is a simple form of a switch() statement that determines whether the given string matches one of the given string literals. The template type parameter T is the type of the value that will be returned from the string-switch expression. For example, the following code switches on the name of a color in argv[i]:

Color color = StringSwitch(argv[i])

.Case("red", Red)

.Case("orange", Orange)

.Case("yellow", Yellow)

.Case("green", Green)

.Case("blue", Blue)

.Case("indigo", Indigo)

.Cases({"violet", "purple"}, Violet)

StringSwitch(StringRef S)

@ Default

The result values are uniform if and only if all operands are uniform.

When multiple matches are found, the value of the first match is returned.

Definition at line 47 of file StringSwitch.h.

template<typename T, typename R = T>

Definition at line 56 of file StringSwitch.h.

Referenced by Case(), CaseLower(), Cases(), Cases(), Cases(), Cases(), Cases(), Cases(), Cases(), Cases(), Cases(), Cases(), CasesLower(), CasesLower(), CasesLower(), CasesLower(), CasesLower(), EndsWith(), EndsWithLower(), operator=(), operator=(), StartsWith(), StartsWithLower(), StringSwitch(), and StringSwitch().

StringSwitch() [2/3]

template<typename T, typename R = T>

StringSwitch() [3/3]

template<typename T, typename R = T>

Case()

template<typename T, typename R = T>

Definition at line 69 of file StringSwitch.h.

References StringSwitch(), and T.

Referenced by llvm::AArch64StringToVectorLayout(), llvm::ARMCondCodeFromString(), llvm::ARMVectorCondCodeFromString(), llvm::classifyEHPersonality(), llvm::ELF::convertArchNameToEMachine(), llvm::convertStrToExceptionBehavior(), llvm::convertStrToRoundingMode(), llvm::TargetOptions::FramePointerIsReserved(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getAccessQualifier(), llvm::getAllocTokenModeFromString(), llvm::ARM::getArchSynonym(), llvm::Triple::getArchTypeForLLVMName(), llvm::DIFile::getChecksumKind(), llvm::Hexagon::getCpu(), llvm::XCOFF::getCpuID(), llvm::DWARFYAML::getDWARFEmitterByName(), llvm::Hexagon_MC::GetELFFlags(), llvm::DICompileUnit::getEmissionKind(), llvm::AArch64BuildAttributes::getFeatureAndBitsTagsID(), llvm::DIFixedPointType::getFixedPointKind(), llvm::ARMAsmBackendELF::getFixupKind(), llvm::AVRAsmBackend::getFixupKind(), llvm::LoongArchAsmBackend::getFixupKind(), llvm::MipsAsmBackend::getFixupKind(), llvm::RISCVAsmBackend::getFixupKind(), getFPPredicateFromMD(), llvm::ARM::getFPUSynonym(), getHostCPUNameForARMFromComponents(), llvm::sys::detail::getHostCPUNameForPowerPC(), llvm::sys::detail::getHostCPUNameForRISCV(), getHWDivSynonym(), getIdentifierKind(), llvm::object::getImageKind(), llvm::M68kTargetLowering::getInlineAsmMemConstraint(), llvm::RISCVMachineFunctionInfo::getInterruptStackKind(), getIntPredicateFromMD(), llvm::mca::RISCVLMULInstrument::getLMUL(), llvm::getMachineType(), llvm::dwarf::getMacinfo(), getMClassFlagsMask(), getMetadataKeywordKind(), llvm::DICompileUnit::getNameTableKind(), llvm::object::getOffloadKind(), llvm::dwarf::getOperationEncoding(), llvm::AArch64BuildAttributes::getOptionalID(), llvm::AArch64BuildAttributes::getPauthABITagsID(), llvm::MachO::getPlatformFromName(), llvm::RISCVTargetLowering::getRegForInlineAsmConstraint(), llvm::AVRTargetLowering::getRegisterByName(), llvm::HexagonTargetLowering::getRegisterByName(), llvm::LanaiTargetLowering::getRegisterByName(), llvm::MipsTargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::SparcTargetLowering::getRegisterByName(), llvm::SystemZTargetLowering::getRegisterByName(), llvm::VETargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), llvm::mca::RISCVSEWInstrument::getSEW(), GetSignReturnAddress(), llvm::pdb::PDBSymbolCompiland::getSourceFileFullPath(), getSpecialRegForName(), llvm::LoongArchABI::getTargetABI(), llvm::RISCVABI::getTargetABI(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getValueKind(), llvm::AArch64BuildAttributes::getVendorID(), llvm::VFABI::getVFParamKindFromString(), llvm::yaml::ScalarTraits< IFSBitWidthType >::input(), llvm::yaml::ScalarTraits< IFSEndiannessType >::input(), llvm::yaml::ScalarTraits< SwiftVersion >::input(), isSpecialLLVMGlobalArrayToSkip(), llvm::object::Lexer::lex(), llvm::object::COFFObjectFile::mapDebugSectionName(), llvm::object::MachOObjectFile::mapDebugSectionName(), llvm::object::XCOFFObjectFile::mapDebugSectionName(), matchMatrixRegName(), matchMatrixTileListRegName(), MatchNeonVectorRegName(), matchSVEDataVectorRegName(), matchSVEPredicateAsCounterRegName(), matchSVEPredicateVectorRegName(), llvm::PPC::normalizeCPUName(), llvm::HexagonMCInstrInfo::packetSize(), parseArch(), llvm::WebAssembly::parseBlockType(), parseConstraintCode(), parseConstraintCode(), llvm::dwarf_linker::parseDebugTableName(), llvm::parseDenormalFPAttributeComponent(), llvm::MachO::TextAPIWriter::parseFileType(), llvm::WebAssembly::parseMVT(), parseNamePrefix(), parseOptLevel(), parsePredicateConstraint(), parseReducedGprConstraint(), llvm::LoongArch::parseSpecifier(), llvm::Sparc::parseSpecifier(), llvm::RISCV::parseSpecifierName(), llvm::RISCV::parseTuneCPU(), llvm::remarks::YAMLRemarkParser::parseType(), llvm::WebAssembly::parseType(), parseVectorKind(), parseVendor(), llvm::SymbolRemappingReader::read(), shouldUpgradeNVPTXBF16Intrinsic(), shouldUpgradeNVPTXSharedClusterIntrinsic(), shouldUpgradeNVPTXTMAG2SIntrinsics(), llvm::LPAC::stringToLanaiAluCode(), llvm::RISCVFPRndMode::stringToRoundingMode(), llvm::RISCVVXRndMode::stringToRoundingMode(), llvm::stringToVEFCondCode(), llvm::stringToVEICondCode(), llvm::stringToVERD(), llvm::MDNode::toCaptureComponents(), tryParseISA(), upgradeAArch64IntrinsicCall(), upgradeArmOrAarch64IntrinsicFunction(), upgradeIntrinsicFunction1(), and upgradeX86IntrinsicFunction().

CaseLower()

template<typename T, typename R = T>

Cases() [1/10]

template<typename T, typename R = T>

Definition at line 88 of file StringSwitch.h.

References StringSwitch(), and T.

Referenced by llvm::TargetOptions::FramePointerIsReserved(), llvm::ARM::getArchSynonym(), llvm::XCOFF::getCpuID(), llvm::ARM::getFPUSynonym(), llvm::getMachineType(), llvm::RISCVTargetLowering::getRegForInlineAsmConstraint(), llvm::AArch64BuildAttributes::getTypeID(), llvm::mca::RISCVLMULInstrument::isDataValid(), llvm::mca::RISCVSEWInstrument::isDataValid(), isSpecialLLVMGlobalArrayForStaticInit(), isValidInsnFormat(), MCAttrForString(), llvm::PPC::normalizeCPUName(), parseAMDGPUAtomicOptimizerStrategy(), parseArch(), llvm::parseDenormalFPAttributeComponent(), llvm::remarks::parseFormat(), llvm::WebAssembly::parseType(), llvm::Triple::Triple(), upgradeArmOrAarch64IntrinsicFunction(), and upgradeIntrinsicFunction1().

Cases() [2/10]

template<typename T, typename R = T>

StringSwitch & llvm::StringSwitch< T, R >::Cases ( StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, StringLiteral S5, StringLiteral S6, StringLiteral S7, StringLiteral S8, StringLiteral S9, T Value ) inline

Cases() [3/10]

template<typename T, typename R = T>

StringSwitch & llvm::StringSwitch< T, R >::Cases ( StringLiteral S0, StringLiteral S1, StringLiteral S2, StringLiteral S3, StringLiteral S4, StringLiteral S5, StringLiteral S6, StringLiteral S7, StringLiteral S8, T Value ) inline

Cases() [4/10]

template<typename T, typename R = T>

Cases() [5/10]

template<typename T, typename R = T>

Cases() [6/10]

template<typename T, typename R = T>

Cases() [7/10]

template<typename T, typename R = T>

Cases() [8/10]

template<typename T, typename R = T>

Cases() [9/10]

template<typename T, typename R = T>

Cases() [10/10]

template<typename T, typename R = T>

CasesLower() [1/5]

template<typename T, typename R = T>

CasesLower() [2/5]

template<typename T, typename R = T>

CasesLower() [3/5]

template<typename T, typename R = T>

CasesLower() [4/5]

template<typename T, typename R = T>

CasesLower() [5/5]

template<typename T, typename R = T>

Default()

template<typename T, typename R = T>

Definition at line 201 of file StringSwitch.h.

References T.

Referenced by llvm::AArch64StringToVectorLayout(), llvm::ARMCondCodeFromString(), llvm::ARMVectorCondCodeFromString(), llvm::classifyEHPersonality(), llvm::ELF::convertArchNameToEMachine(), llvm::ELF::convertNameToOSABI(), llvm::convertStrToExceptionBehavior(), llvm::convertStrToRoundingMode(), llvm::MachO::Target::create(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getAccessQualifier(), llvm::Xtensa::getAliasName(), llvm::getAllocTokenModeFromString(), llvm::MachO::getArchitectureFromName(), llvm::ARM::getArchSynonym(), llvm::Triple::getArchTypeForLLVMName(), llvm::dwarf::getAttributeEncoding(), llvm::Attribute::getAttrKindFromName(), llvm::Xtensa::getBaseName(), llvm::dwarf::getCallingConvention(), llvm::DIFile::getChecksumKind(), llvm::Hexagon::getCpu(), llvm::ARM::getDefaultExtensions(), llvm::CSKY::getDefaultExtensions(), llvm::ARM::getDefaultFPU(), llvm::DWARFYAML::getDWARFEmitterByName(), llvm::DICompileUnit::getEmissionKind(), llvm::dwarf::getEnumKind(), llvm::AArch64BuildAttributes::getFeatureAndBitsTagsID(), llvm::DIFixedPointType::getFixedPointKind(), llvm::ARMAsmBackendELF::getFixupKind(), llvm::AVRAsmBackend::getFixupKind(), llvm::LoongArchAsmBackend::getFixupKind(), llvm::MipsAsmBackend::getFixupKind(), llvm::RISCVAsmBackend::getFixupKind(), llvm::DINode::getFlag(), llvm::DISubprogram::getFlag(), getFPPredicateFromMD(), llvm::ARM::getFPUSynonym(), getHostCPUNameForARMFromComponents(), llvm::sys::detail::getHostCPUNameForPowerPC(), llvm::sys::detail::getHostCPUNameForRISCV(), getHWDivSynonym(), getIdentifierKind(), llvm::object::getImageKind(), llvm::M68kTargetLowering::getInlineAsmMemConstraint(), llvm::RISCVMachineFunctionInfo::getInterruptStackKind(), getIntPredicateFromMD(), llvm::dwarf::getLanguage(), getLlvmUserOperationEncoding(), llvm::getMachineType(), llvm::dwarf::getMacinfo(), llvm::dwarf::getMacro(), getMClassFlagsMask(), getMetadataKeywordKind(), llvm::DICompileUnit::getNameTableKind(), llvm::object::getOffloadKind(), llvm::omp::getOpenMPContextTraitPropertyForSelector(), llvm::omp::getOpenMPContextTraitSelectorKind(), llvm::omp::getOpenMPContextTraitSetKind(), llvm::dwarf::getOperationEncoding(), llvm::AArch64BuildAttributes::getOptionalID(), llvm::AArch64BuildAttributes::getPauthABITagsID(), llvm::MachO::getPlatformFromName(), llvm::RISCVTargetLowering::getRegForInlineAsmConstraint(), llvm::AVRTargetLowering::getRegisterByName(), llvm::HexagonTargetLowering::getRegisterByName(), llvm::LanaiTargetLowering::getRegisterByName(), llvm::MipsTargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::SparcTargetLowering::getRegisterByName(), llvm::SystemZTargetLowering::getRegisterByName(), llvm::VETargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), llvm::pdb::PDBSymbolCompiland::getSourceFileFullPath(), llvm::dwarf::getSourceLanguageName(), getSpecialRegForName(), llvm::dwarf::getTag(), llvm::LoongArchABI::getTargetABI(), llvm::RISCVABI::getTargetABI(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getValueKind(), llvm::AArch64BuildAttributes::getVendorID(), llvm::VFABI::getVFParamKindFromString(), llvm::dwarf::getVirtuality(), llvm::yaml::ScalarTraits< IFSBitWidthType >::input(), llvm::yaml::ScalarTraits< IFSEndiannessType >::input(), llvm::yaml::ScalarTraits< SwiftVersion >::input(), llvm::Attribute::isExistingAttribute(), isSpecialLLVMGlobalArrayToSkip(), isValidInsnFormat(), llvm::object::Lexer::lex(), llvm::remarks::magicToFormat(), llvm::object::COFFObjectFile::mapDebugSectionName(), llvm::object::MachOObjectFile::mapDebugSectionName(), llvm::object::XCOFFObjectFile::mapDebugSectionName(), llvm::object::MachOObjectFile::mapReflectionSectionNameToEnumValue(), matchMatrixRegName(), matchMatrixTileListRegName(), MatchNeonVectorRegName(), matchSVEDataVectorRegName(), matchSVEPredicateAsCounterRegName(), matchSVEPredicateVectorRegName(), MaybePredicatedInst(), MCAttrForString(), llvm::MCLOHNameToId(), llvm::PPC::normalizeCPUName(), llvm::HexagonMCInstrInfo::packetSize(), parseAMDGPUAtomicOptimizerStrategy(), parseArch(), llvm::ARM::parseArchISA(), llvm::WebAssembly::parseBlockType(), parseConstraintCode(), parseConstraintCode(), llvm::Xtensa::parseCPUKind(), llvm::dwarf_linker::parseDebugTableName(), llvm::parseDenormalFPAttributeComponent(), parseEnvironment(), llvm::MachO::TextAPIWriter::parseFileType(), llvm::remarks::parseFormat(), parseFormat(), llvm::WebAssembly::parseMVT(), parseNamePrefix(), parseOptLevel(), parseOS(), llvm::dxbc::parsePartType(), parsePredicateConstraint(), parseReducedGprConstraint(), llvm::LoongArch::parseSpecifier(), llvm::Sparc::parseSpecifier(), llvm::RISCV::parseSpecifierName(), parseSubArch(), parseThunkName(), llvm::RISCV::parseTuneCPU(), llvm::remarks::YAMLRemarkParser::parseType(), llvm::WebAssembly::parseType(), parseVendor(), llvm::SymbolRemappingReader::read(), shouldUpgradeNVPTXBF16Intrinsic(), shouldUpgradeNVPTXSharedClusterIntrinsic(), shouldUpgradeNVPTXTMAG2SIntrinsics(), SizeForSuffix(), llvm::LPAC::stringToLanaiAluCode(), llvm::RISCVFPRndMode::stringToRoundingMode(), llvm::RISCVVXRndMode::stringToRoundingMode(), llvm::stringToVEFCondCode(), llvm::stringToVEICondCode(), llvm::stringToVERD(), llvm::LPCC::suffixToLanaiCondCode(), tryParseISA(), upgradeAArch64IntrinsicCall(), upgradeArmOrAarch64IntrinsicFunction(), llvm::UpgradeIntrinsicCall(), upgradeIntrinsicFunction1(), and upgradeX86IntrinsicFunction().

DefaultUnreachable()

template<typename T, typename R = T>

EndsWith()

template<typename T, typename R = T>

EndsWithLower()

template<typename T, typename R = T>

operator R()

template<typename T, typename R = T>

operator=() [1/2]

template<typename T, typename R = T>

operator=() [2/2]

template<typename T, typename R = T>

StartsWith()

template<typename T, typename R = T>

Definition at line 81 of file StringSwitch.h.

References StringSwitch(), and T.

Referenced by llvm::ELF::convertNameToOSABI(), llvm::Triple::getArchTypeForLLVMName(), llvm::remarks::magicToFormat(), MaybePredicatedInst(), llvm::ARM::parseArchISA(), parseEnvironment(), parseOS(), parseThunkName(), llvm::Triple::Triple(), upgradeAMDGCNIntrinsicCall(), upgradeArmOrAarch64IntrinsicFunction(), llvm::UpgradeIntrinsicCall(), and upgradeIntrinsicFunction1().

StartsWithLower()

template<typename T, typename R = T>


The documentation for this class was generated from the following file: