LLVM  10.0.0svn
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/MC/SubtargetFeature.h"

Public Member Functions

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

Static Public Member Functions

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

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 90 of file SubtargetFeature.h.

Constructor & Destructor Documentation

◆ SubtargetFeatures()

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

Definition at line 47 of file SubtargetFeature.cpp.

References Split().

Member Function Documentation

◆ AddFeature()

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

◆ dump()

LLVM_DUMP_METHOD void SubtargetFeatures::dump ( ) const

Definition at line 63 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

Returns the vector of individual subtarget features.

Definition at line 103 of file SubtargetFeature.h.

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

Referenced by llvm::MCSubtargetInfo::checkFeatures(), and getFeatures().

◆ 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 115 of file SubtargetFeature.h.

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

Referenced by AddFeature(), and ApplyFeatureFlag().

◆ isEnabled()

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

Return true if enable flag; '+'.

Definition at line 129 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 56 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 33 of file SubtargetFeature.cpp.

References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorTemplateCommon< T >::end(), and llvm::StringRef::split().

Referenced by SubtargetFeatures().

◆ StripFlag()

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

Return string stripped of flag.

Definition at line 124 of file SubtargetFeature.h.

References llvm::StringRef::substr().

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


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