[X86] Add FeatureFast7ByteNOP flag
Lets us remove another SLM proc family flag usage. This is NFC, but we should probably check whether atom/glm/knl? should be using this flag as well...
This commit is contained in:
parent
966cad0c65
commit
1e686d2689
|
@ -924,7 +924,7 @@ bool X86AsmBackend::writeNopData(raw_ostream &OS, uint64_t Count) const {
|
|||
// 15-bytes is the longest single NOP instruction, but 10-bytes is
|
||||
// commonly the longest that can be efficiently decoded.
|
||||
uint64_t MaxNopLength = 10;
|
||||
if (STI.getFeatureBits()[X86::ProcIntelSLM])
|
||||
if (STI.getFeatureBits()[X86::FeatureFast7ByteNOP])
|
||||
MaxNopLength = 7;
|
||||
else if (STI.getFeatureBits()[X86::FeatureFast15ByteNOP])
|
||||
MaxNopLength = 15;
|
||||
|
|
|
@ -329,6 +329,11 @@ def FeatureFastLZCNT
|
|||
: SubtargetFeature<
|
||||
"fast-lzcnt", "HasFastLZCNT", "true",
|
||||
"LZCNT instructions are as fast as most simple integer ops">;
|
||||
// If the target can efficiently decode NOPs upto 7-bytes in length.
|
||||
def FeatureFast7ByteNOP
|
||||
: SubtargetFeature<
|
||||
"fast-7bytenop", "HasFast7ByteNOP", "true",
|
||||
"Target can quickly decode up to 7 byte NOPs">;
|
||||
// If the target can efficiently decode NOPs upto 11-bytes in length.
|
||||
def FeatureFast11ByteNOP
|
||||
: SubtargetFeature<
|
||||
|
@ -728,6 +733,7 @@ def ProcessorFeatures {
|
|||
list<SubtargetFeature> SLMSpecificFeatures = [ProcIntelSLM,
|
||||
FeatureSlowDivide64,
|
||||
FeatureSlowPMULLD,
|
||||
FeatureFast7ByteNOP,
|
||||
FeaturePOPCNTFalseDeps];
|
||||
list<SubtargetFeature> SLMInheritableFeatures =
|
||||
!listconcat(AtomInheritableFeatures, SLMAdditionalFeatures);
|
||||
|
|
|
@ -257,6 +257,10 @@ protected:
|
|||
/// ymm or zmm registers.
|
||||
bool InsertVZEROUPPER = false;
|
||||
|
||||
/// True if there is no performance penalty for writing NOPs with up to
|
||||
/// 7 bytes.
|
||||
bool HasFast7ByteNOP = false;
|
||||
|
||||
/// True if there is no performance penalty for writing NOPs with up to
|
||||
/// 11 bytes.
|
||||
bool HasFast11ByteNOP = false;
|
||||
|
|
Loading…
Reference in New Issue