LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::SubtargetFeatures Class Reference

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

#include "llvm/TargetParser/SubtargetFeature.h"

Public Member Functions

 SubtargetFeatures (StringRef Initial="")
 
std::string getString () const
 Returns features as a string.
 
void AddFeature (StringRef String, bool Enable=true)
 Adds Features.
 
void addFeaturesVector (const ArrayRef< std::string > OtherFeatures)
 
const std::vector< std::string > & getFeatures () const
 Returns the vector of individual subtarget features.
 
void print (raw_ostream &OS) const
 Prints feature string.
 
void dump () const
 
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 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 174 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()

void SubtargetFeatures::AddFeature ( StringRef  String,
bool  Enable = true 
)

◆ addFeaturesVector()

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

◆ dump()

LLVM_DUMP_METHOD void SubtargetFeatures::dump ( ) const

Definition at line 65 of file SubtargetFeature.cpp.

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

◆ getDefaultSubtargetFeatures()

void SubtargetFeatures::getDefaultSubtargetFeatures ( const Triple Triple)

◆ getFeatures()

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

◆ getString()

std::string SubtargetFeatures::getString ( ) const

◆ hasFlag()

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

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

Definition at line 201 of file SubtargetFeature.h.

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

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

◆ isEnabled()

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

Return true if enable flag; '+'.

Definition at line 215 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, and OS.

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::SmallVectorBase< Size_T >::size(), and llvm::StringRef::split().

Referenced by SubtargetFeatures().

◆ StripFlag()

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

Return string stripped of flag.

Definition at line 210 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: