LLVM  8.0.1
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...
 
FeatureBitset getFeatureBits (StringRef CPU, ArrayRef< SubtargetFeatureKV > CPUTable, ArrayRef< SubtargetFeatureKV > FeatureTable)
 Returns feature bits of a CPU. 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 void ToggleFeature (FeatureBitset &Bits, StringRef String, ArrayRef< SubtargetFeatureKV > FeatureTable)
 Toggles a feature and update the feature bits. More...
 
static void ApplyFeatureFlag (FeatureBitset &Bits, StringRef Feature, ArrayRef< SubtargetFeatureKV > FeatureTable)
 Applies the feature flag and update the feature bits. 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 93 of file SubtargetFeature.h.

Constructor & Destructor Documentation

◆ SubtargetFeatures()

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

Definition at line 115 of file SubtargetFeature.cpp.

References Split().

Member Function Documentation

◆ AddFeature()

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

◆ ApplyFeatureFlag()

void SubtargetFeatures::ApplyFeatureFlag ( FeatureBitset Bits,
StringRef  Feature,
ArrayRef< SubtargetFeatureKV FeatureTable 
)
static

◆ dump()

LLVM_DUMP_METHOD void SubtargetFeatures::dump ( ) const

Definition at line 261 of file SubtargetFeature.cpp.

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

◆ getDefaultSubtargetFeatures()

void SubtargetFeatures::getDefaultSubtargetFeatures ( const Triple Triple)

◆ getFeatureBits()

FeatureBitset SubtargetFeatures::getFeatureBits ( StringRef  CPU,
ArrayRef< SubtargetFeatureKV CPUTable,
ArrayRef< SubtargetFeatureKV FeatureTable 
)

◆ getFeatures()

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

Returns the vector of individual subtarget features.

Definition at line 119 of file SubtargetFeature.h.

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

Referenced by llvm::MCSubtargetInfo::checkFeatures().

◆ getString()

std::string SubtargetFeatures::getString ( ) const

◆ print()

void SubtargetFeatures::print ( raw_ostream OS) const

Prints feature string.

Definition at line 254 of file SubtargetFeature.cpp.

References F().

Referenced by dump().

◆ ToggleFeature()

void SubtargetFeatures::ToggleFeature ( FeatureBitset Bits,
StringRef  String,
ArrayRef< SubtargetFeatureKV FeatureTable 
)
static

Toggles a feature and update the feature bits.

Definition at line 154 of file SubtargetFeature.cpp.

References ClearImpliedBits(), llvm::errs(), Find(), SetImpliedBits(), StripFlag(), and llvm::SubtargetFeatureKV::Value.

Referenced by llvm::MCSubtargetInfo::ToggleFeature().


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