LLVM 22.0.0git
llvm::SubtargetFeatures Class Reference

Manages the enabling and disabling of subtarget specific features. More...

#include "llvm/TargetParser/SubtargetFeature.h"

Public Member Functions

LLVM_ABI SubtargetFeatures (StringRef Initial="")
LLVM_ABI std::string getString () const
 Returns features as a string.
LLVM_ABI void AddFeature (StringRef String, bool Enable=true)
 Adds Features.
LLVM_ABI void addFeaturesVector (const ArrayRef< std::string > OtherFeatures)
const std::vector< std::string > & getFeatures () const
 Returns the vector of individual subtarget features.
LLVM_ABI void print (raw_ostream &OS) const
 Prints feature string.
LLVM_ABI void dump () const
LLVM_ABI void getDefaultSubtargetFeatures (const Triple &Triple)
 Adds the default features for the specified target triple.

Static Public Member Functions

static bool hasFlag (StringRef Feature)
 Determine if a feature has a flag; '+' or '-'.
static StringRef StripFlag (StringRef Feature)
 Return string stripped of flag.
static bool isEnabled (StringRef Feature)
 Return true if enable flag; '+'.
static LLVM_ABI void Split (std::vector< std::string > &V, StringRef S)
 Splits a string of comma separated items in to a vector of strings.

Detailed Description

Manages the enabling and disabling of subtarget specific features.

Features are encoded as a string of the form "+attr1,+attr2,-attr3,...,+attrN" A comma separates each feature from the next (all lowercase.) Each of the remaining features is prefixed with + or - indicating whether that feature should be enabled or disabled contrary to the cpu specification.

Definition at line 175 of file SubtargetFeature.h.

Constructor & Destructor Documentation

◆ SubtargetFeatures()

SubtargetFeatures::SubtargetFeatures ( StringRef Initial = "")
explicit

Definition at line 49 of file SubtargetFeature.cpp.

References Split().

Member Function Documentation

◆ AddFeature()

◆ addFeaturesVector()

void SubtargetFeatures::addFeaturesVector ( const ArrayRef< std::string > OtherFeatures)

Definition at line 44 of file SubtargetFeature.cpp.

References llvm::append_range().

◆ dump()

LLVM_DUMP_METHOD void SubtargetFeatures::dump ( ) const

Definition at line 65 of file SubtargetFeature.cpp.

References llvm::dbgs(), LLVM_DUMP_METHOD, and print().

◆ getDefaultSubtargetFeatures()

void SubtargetFeatures::getDefaultSubtargetFeatures ( const Triple & Triple)

◆ getFeatures()

const std::vector< std::string > & llvm::SubtargetFeatures::getFeatures ( ) const
inline

◆ getString()

◆ hasFlag()

bool llvm::SubtargetFeatures::hasFlag ( StringRef Feature)
inlinestatic

Determine if a feature has a flag; '+' or '-'.

Definition at line 202 of file SubtargetFeature.h.

References assert(), and llvm::StringRef::empty().

Referenced by AddFeature(), ApplyFeatureFlag(), and StripFlag().

◆ isEnabled()

bool llvm::SubtargetFeatures::isEnabled ( StringRef Feature)
inlinestatic

Return true if enable flag; '+'.

Definition at line 216 of file SubtargetFeature.h.

References assert(), and llvm::StringRef::empty().

Referenced by ApplyFeatureFlag().

◆ print()

void SubtargetFeatures::print ( raw_ostream & OS) const

Prints feature string.

Definition at line 58 of file SubtargetFeature.cpp.

References F.

Referenced by dump().

◆ Split()

void SubtargetFeatures::Split ( std::vector< std::string > & V,
StringRef S )
static

Splits a string of comma separated items in to a vector of strings.

Definition at line 28 of file SubtargetFeature.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::StringRef::split(), and T.

Referenced by SubtargetFeatures().

◆ StripFlag()

StringRef llvm::SubtargetFeatures::StripFlag ( StringRef Feature)
inlinestatic

Return string stripped of flag.

Definition at line 211 of file SubtargetFeature.h.

References hasFlag(), and llvm::StringRef::substr().

Referenced by ApplyFeatureFlag(), and llvm::MCSubtargetInfo::ToggleFeature().


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