28 FeatureBits =
getFeatures(CPU, FS, ProcDesc, ProcFeatures);
36 FeatureBits =
getFeatures(CPU, FS, ProcDesc, ProcFeatures);
39 MCSubtargetInfo::MCSubtargetInfo(
44 const InstrStage *IS,
const unsigned *
OC,
const unsigned *FP)
45 : TargetTriple(TT), CPU(C), ProcFeatures(PF), ProcDesc(PD),
46 ProcSchedModels(ProcSched), WriteProcResTable(WPR), WriteLatencyTable(WL),
47 ReadAdvanceTable(RA), Stages(IS), OperandCycles(OC), ForwardingPaths(FP) {
76 assert(ProcSchedModels &&
"Processor machine model not available!");
80 assert(std::is_sorted(SchedModels.begin(), SchedModels.end(),
84 "Processor machine model table is not sorted");
88 std::lower_bound(SchedModels.begin(), SchedModels.end(), CPU);
89 if (Found == SchedModels.end() ||
StringRef(Found->Key) != CPU) {
92 <<
"' is not a recognized processor for this target"
93 <<
" (ignoring processor)\n";
96 assert(Found->Value &&
"Missing processor SchedModel value");
raw_ostream & errs()
This returns a reference to a raw_ostream for standard error.
InstrItineraryData getInstrItineraryForCPU(StringRef CPU) const
getInstrItineraryForCPU - Get scheduling itinerary of a CPU.
Maximum length of the test input libFuzzer tries to guess a good value based on the corpus and reports it always prefer smaller inputs during the corpus shuffle When libFuzzer itself reports a bug this exit code will be used If indicates the maximal total time in seconds to run the fuzzer minimizes the provided crash input Use with strcmp
SubtargetInfoKV - Used to provide key value pairs for CPU and arbitrary pointers. ...
void initInstrItins(InstrItineraryData &InstrItins) const
Initialize an InstrItineraryData instance.
const MCSchedModel & getSchedModelForCPU(StringRef CPU) const
getSchedModelForCPU - Get the machine model of a CPU.
const MCSchedModel & getSchedModel() const
Get the machine model for this subtarget's CPU.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
Itinerary data supplied by a subtarget to be used by a target.
void InitMCProcessorInfo(StringRef CPU, StringRef FS)
Initialize the scheduling model and feature bits.
static const MCSchedModel & GetDefaultSchedModel()
Returns the default initialized model.
FeatureBitset ToggleFeature(uint64_t FB)
ToggleFeature - Toggle a feature and returns the re-computed feature bits.
Identify one of the processor resource kinds consumed by a particular scheduling class for the specif...
FeatureBitset ApplyFeatureFlag(StringRef FS)
Apply a feature flag and return the re-computed feature bits, including all feature bits implied by t...
static void ToggleFeature(FeatureBitset &Bits, StringRef String, ArrayRef< SubtargetFeatureKV > FeatureTable)
ToggleFeature - Toggle a feature and update the feature bits.
Triple - Helper class for working with autoconf configuration names.
Specify the latency in cpu cycles for a particular scheduling class and def index.
static GCRegistry::Add< ShadowStackGC > C("shadow-stack","Very portable GC for uncooperative code generators")
SubtargetFeatures - Manages the enabling and disabling of subtarget specific features.
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE bool empty() const
empty - Check if the string is empty.
Specify the number of cycles allowed after instruction issue before a particular use operand reads it...
These values represent a non-pipelined step in the execution of an instruction.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
static void ApplyFeatureFlag(FeatureBitset &Bits, StringRef Feature, ArrayRef< SubtargetFeatureKV > FeatureTable)
Apply the feature flag and update the feature bits.
const FeatureBitset Features
StringRef - Represent a constant reference to a string, i.e.
static FeatureBitset getFeatures(StringRef CPU, StringRef FS, ArrayRef< SubtargetFeatureKV > ProcDesc, ArrayRef< SubtargetFeatureKV > ProcFeatures)
FeatureBitset getFeatureBits(StringRef CPU, ArrayRef< SubtargetFeatureKV > CPUTable, ArrayRef< SubtargetFeatureKV > FeatureTable)
Get feature bits of a CPU.
Machine model for scheduling, bundling, and heuristics.
void setDefaultFeatures(StringRef CPU, StringRef FS)
Set the features to the default for the given CPU with an appended feature string.