[llvm] 08d17cb - [X86] Move an enum definition into a header to simplify future patches [NFC]

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 6 15:14:53 PST 2020


Author: Philip Reames
Date: 2020-01-06T15:14:42-08:00
New Revision: 08d17cb065da46be02d36ebeaac1106ee330935b

URL: https://github.com/llvm/llvm-project/commit/08d17cb065da46be02d36ebeaac1106ee330935b
DIFF: https://github.com/llvm/llvm-project/commit/08d17cb065da46be02d36ebeaac1106ee330935b.diff

LOG: [X86] Move an enum definition into a header to simplify future patches [NFC]

Added: 
    

Modified: 
    llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
    llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
index ec250e167b7f..623aff088b17 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
@@ -69,21 +69,12 @@ static unsigned getFixupKindSize(unsigned Kind) {
 }
 
 namespace {
+/// A wrapper for holding a mask of the values from X86::AlignBranchBoundaryKind
 class X86AlignBranchKind {
 private:
   uint8_t AlignBranchKind = 0;
 
 public:
-  enum Flag : uint8_t {
-    AlignBranchNone = 0,
-    AlignBranchFused = 1U << 0,
-    AlignBranchJcc = 1U << 1,
-    AlignBranchJmp = 1U << 2,
-    AlignBranchCall = 1U << 3,
-    AlignBranchRet = 1U << 4,
-    AlignBranchIndirect = 1U << 5
-  };
-
   void operator=(const std::string &Val) {
     if (Val.empty())
       return;
@@ -91,17 +82,17 @@ class X86AlignBranchKind {
     StringRef(Val).split(BranchTypes, '+', -1, false);
     for (auto BranchType : BranchTypes) {
       if (BranchType == "fused")
-        addKind(AlignBranchFused);
+        addKind(X86::AlignBranchFused);
       else if (BranchType == "jcc")
-        addKind(AlignBranchJcc);
+        addKind(X86::AlignBranchJcc);
       else if (BranchType == "jmp")
-        addKind(AlignBranchJmp);
+        addKind(X86::AlignBranchJmp);
       else if (BranchType == "call")
-        addKind(AlignBranchCall);
+        addKind(X86::AlignBranchCall);
       else if (BranchType == "ret")
-        addKind(AlignBranchRet);
+        addKind(X86::AlignBranchRet);
       else if (BranchType == "indirect")
-        addKind(AlignBranchIndirect);
+        addKind(X86::AlignBranchIndirect);
       else {
         report_fatal_error(
             "'-x86-align-branch 'The branches's type is combination of jcc, "
@@ -112,7 +103,7 @@ class X86AlignBranchKind {
   }
 
   operator uint8_t() const { return AlignBranchKind; }
-  void addKind(Flag Value) { AlignBranchKind |= Value; }
+  void addKind(X86::AlignBranchBoundaryKind Value) { AlignBranchKind |= Value; }
 };
 
 X86AlignBranchKind X86AlignBranchKindLoc;
@@ -421,7 +412,7 @@ static bool hasVariantSymbol(const MCInst &MI) {
 
 bool X86AsmBackend::needAlign(MCObjectStreamer &OS) const {
   if (AlignBoundary == Align::None() ||
-      AlignBranchType == X86AlignBranchKind::AlignBranchNone)
+      AlignBranchType == X86::AlignBranchNone)
     return false;
 
   MCAssembler &Assembler = OS.getAssembler();
@@ -447,15 +438,15 @@ bool X86AsmBackend::needAlignInst(const MCInst &Inst) const {
 
   const MCInstrDesc &InstDesc = MCII->get(Inst.getOpcode());
   return (InstDesc.isConditionalBranch() &&
-          (AlignBranchType & X86AlignBranchKind::AlignBranchJcc)) ||
+          (AlignBranchType & X86::AlignBranchJcc)) ||
          (InstDesc.isUnconditionalBranch() &&
-          (AlignBranchType & X86AlignBranchKind::AlignBranchJmp)) ||
+          (AlignBranchType & X86::AlignBranchJmp)) ||
          (InstDesc.isCall() &&
-          (AlignBranchType & X86AlignBranchKind::AlignBranchCall)) ||
+          (AlignBranchType & X86::AlignBranchCall)) ||
          (InstDesc.isReturn() &&
-          (AlignBranchType & X86AlignBranchKind::AlignBranchRet)) ||
+          (AlignBranchType & X86::AlignBranchRet)) ||
          (InstDesc.isIndirectBranch() &&
-          (AlignBranchType & X86AlignBranchKind::AlignBranchIndirect));
+          (AlignBranchType & X86::AlignBranchIndirect));
 }
 
 static bool canReuseBoundaryAlignFragment(const MCBoundaryAlignFragment &F) {
@@ -480,7 +471,7 @@ void X86AsmBackend::alignBranchesBegin(MCObjectStreamer &OS,
     return;
 
   MCFragment *CF = OS.getCurrentFragment();
-  bool NeedAlignFused = AlignBranchType & X86AlignBranchKind::AlignBranchFused;
+  bool NeedAlignFused = AlignBranchType & X86::AlignBranchFused;
   if (NeedAlignFused && isMacroFused(PrevInst, Inst) && CF) {
     // Macro fusion actually happens and there is no other fragment inserted
     // after the previous instruction. NOP can be emitted in PF to align fused

diff  --git a/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h b/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
index 4220dc238a9c..a4f8dd669e1e 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
@@ -345,6 +345,17 @@ namespace X86 {
     }
     llvm_unreachable("unknown fusion type");
   }
+
+  /// Defines the possible values of the branch boundary alignment mask.
+  enum AlignBranchBoundaryKind : uint8_t {
+    AlignBranchNone = 0,
+    AlignBranchFused = 1U << 0,
+    AlignBranchJcc = 1U << 1,
+    AlignBranchJmp = 1U << 2,
+    AlignBranchCall = 1U << 3,
+    AlignBranchRet = 1U << 4,
+    AlignBranchIndirect = 1U << 5
+  };
 } // end namespace X86;
 
 /// X86II - This namespace holds all of the target specific flags that


        


More information about the llvm-commits mailing list