LLVM  10.0.0svn
Functions
MCSubtargetInfo.cpp File Reference
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCInstrItineraries.h"
#include "llvm/MC/MCSchedule.h"
#include "llvm/MC/SubtargetFeature.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstring>
Include dependency graph for MCSubtargetInfo.cpp:

Go to the source code of this file.

Functions

template<typename T >
static const TFind (StringRef S, ArrayRef< T > A)
 Find KV in array using binary search. More...
 
static void SetImpliedBits (FeatureBitset &Bits, const FeatureBitset &Implies, ArrayRef< SubtargetFeatureKV > FeatureTable)
 For each feature that is (transitively) implied by this feature, set it. More...
 
static void ClearImpliedBits (FeatureBitset &Bits, unsigned Value, ArrayRef< SubtargetFeatureKV > FeatureTable)
 For each feature that (transitively) implies this feature, clear it. More...
 
static void ApplyFeatureFlag (FeatureBitset &Bits, StringRef Feature, ArrayRef< SubtargetFeatureKV > FeatureTable)
 
template<typename T >
static size_t getLongestEntryLength (ArrayRef< T > Table)
 Return the length of the longest entry in the table. More...
 
static void Help (ArrayRef< SubtargetSubTypeKV > CPUTable, ArrayRef< SubtargetFeatureKV > FeatTable)
 Display help for feature and mcpu choices. More...
 
static void cpuHelp (ArrayRef< SubtargetSubTypeKV > CPUTable)
 Display help for mcpu choices only. More...
 
static FeatureBitset getFeatures (StringRef CPU, StringRef FS, ArrayRef< SubtargetSubTypeKV > ProcDesc, ArrayRef< SubtargetFeatureKV > ProcFeatures)
 

Function Documentation

◆ ApplyFeatureFlag()

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

◆ ClearImpliedBits()

static void ClearImpliedBits ( FeatureBitset Bits,
unsigned  Value,
ArrayRef< SubtargetFeatureKV FeatureTable 
)
static

For each feature that (transitively) implies this feature, clear it.

Definition at line 48 of file MCSubtargetInfo.cpp.

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

◆ cpuHelp()

static void cpuHelp ( ArrayRef< SubtargetSubTypeKV CPUTable)
static

Display help for mcpu choices only.

Definition at line 129 of file MCSubtargetInfo.cpp.

References llvm::errs().

Referenced by getFeatures().

◆ Find()

template<typename T >
static const T* Find ( StringRef  S,
ArrayRef< T A 
)
static

◆ getFeatures()

static FeatureBitset getFeatures ( StringRef  CPU,
StringRef  FS,
ArrayRef< SubtargetSubTypeKV ProcDesc,
ArrayRef< SubtargetFeatureKV ProcFeatures 
)
static

◆ getLongestEntryLength()

template<typename T >
static size_t getLongestEntryLength ( ArrayRef< T Table)
static

Return the length of the longest entry in the table.

Definition at line 88 of file MCSubtargetInfo.cpp.

References I, and llvm::max().

Referenced by Help().

◆ Help()

static void Help ( ArrayRef< SubtargetSubTypeKV CPUTable,
ArrayRef< SubtargetFeatureKV FeatTable 
)
static

Display help for feature and mcpu choices.

Definition at line 96 of file MCSubtargetInfo.cpp.

References llvm::errs(), llvm::format(), and getLongestEntryLength().

Referenced by getFeatures().

◆ SetImpliedBits()

static void SetImpliedBits ( FeatureBitset Bits,
const FeatureBitset Implies,
ArrayRef< SubtargetFeatureKV FeatureTable 
)
static

For each feature that is (transitively) implied by this feature, set it.

Definition at line 36 of file MCSubtargetInfo.cpp.

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