From 60f815d2411354803ef8cffe8825d95f80dcbb98 Mon Sep 17 00:00:00 2001 From: Sergei Barannikov Date: Sun, 30 Apr 2023 07:00:20 +0300 Subject: [PATCH] [TableGen] Forward declare CodeGenRegister et al. (NFC) --- llvm/utils/TableGen/CallingConvEmitter.cpp | 2 ++ llvm/utils/TableGen/CodeGenDAGPatterns.h | 3 ++- llvm/utils/TableGen/CodeGenRegisters.h | 3 ++- llvm/utils/TableGen/CodeGenTarget.cpp | 5 +++++ llvm/utils/TableGen/CodeGenTarget.h | 9 +++++---- llvm/utils/TableGen/DAGISelMatcher.h | 2 +- llvm/utils/TableGen/DFAPacketizerEmitter.cpp | 1 + 7 files changed, 18 insertions(+), 7 deletions(-) diff --git a/llvm/utils/TableGen/CallingConvEmitter.cpp b/llvm/utils/TableGen/CallingConvEmitter.cpp index 2fd877f..8e6b40e 100644 --- a/llvm/utils/TableGen/CallingConvEmitter.cpp +++ b/llvm/utils/TableGen/CallingConvEmitter.cpp @@ -15,6 +15,8 @@ #include "llvm/TableGen/Error.h" #include "llvm/TableGen/Record.h" #include "llvm/TableGen/TableGenBackend.h" +#include + using namespace llvm; namespace { diff --git a/llvm/utils/TableGen/CodeGenDAGPatterns.h b/llvm/utils/TableGen/CodeGenDAGPatterns.h index 8a02e41..c7a5f5c 100644 --- a/llvm/utils/TableGen/CodeGenDAGPatterns.h +++ b/llvm/utils/TableGen/CodeGenDAGPatterns.h @@ -23,8 +23,10 @@ #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringSet.h" +#include "llvm/ADT/Twine.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/MathExtras.h" +#include "llvm/TableGen/Record.h" #include #include #include @@ -34,7 +36,6 @@ namespace llvm { -class Record; class Init; class ListInit; class DagInit; diff --git a/llvm/utils/TableGen/CodeGenRegisters.h b/llvm/utils/TableGen/CodeGenRegisters.h index e0d401e..15f08d1 100644 --- a/llvm/utils/TableGen/CodeGenRegisters.h +++ b/llvm/utils/TableGen/CodeGenRegisters.h @@ -150,7 +150,8 @@ namespace llvm { }; /// CodeGenRegister - Represents a register definition. - struct CodeGenRegister { + class CodeGenRegister { + public: Record *TheDef; unsigned EnumValue; std::vector CostPerUse; diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index ca8ce48..fbdc049 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -15,6 +15,7 @@ #include "CodeGenTarget.h" #include "CodeGenInstruction.h" +#include "CodeGenRegisters.h" #include "CodeGenSchedule.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/Twine.h" @@ -431,6 +432,10 @@ const CodeGenRegister *CodeGenTarget::getRegisterByName(StringRef Name) const { return getRegBank().getRegistersByName().lookup(Name); } +const CodeGenRegisterClass &CodeGenTarget::getRegisterClass(Record *R) const { + return *getRegBank().getRegClass(R); +} + std::vector CodeGenTarget::getRegisterVTs(Record *R) const { const CodeGenRegister *Reg = getRegBank().getReg(R); diff --git a/llvm/utils/TableGen/CodeGenTarget.h b/llvm/utils/TableGen/CodeGenTarget.h index fa1b7e1..c14827c 100644 --- a/llvm/utils/TableGen/CodeGenTarget.h +++ b/llvm/utils/TableGen/CodeGenTarget.h @@ -17,7 +17,6 @@ #define LLVM_UTILS_TABLEGEN_CODEGENTARGET_H #include "CodeGenHwModes.h" -#include "CodeGenRegisters.h" #include "InfoByHwMode.h" #include "SDNodeProperties.h" #include "llvm/ADT/ArrayRef.h" @@ -36,7 +35,11 @@ namespace llvm { class RecordKeeper; class Record; class CodeGenInstruction; +class CodeGenRegBank; +class CodeGenRegister; +class CodeGenRegisterClass; class CodeGenSchedModels; +class CodeGenSubRegIndex; /// getValueType - Return the MVT::SimpleValueType that the specified TableGen /// record corresponds to. @@ -130,9 +133,7 @@ public: return RegAltNameIndices; } - const CodeGenRegisterClass &getRegisterClass(Record *R) const { - return *getRegBank().getRegClass(R); - } + const CodeGenRegisterClass &getRegisterClass(Record *R) const; /// getRegisterVTs - Find the union of all possible SimpleValueTypes for the /// specified physical register. diff --git a/llvm/utils/TableGen/DAGISelMatcher.h b/llvm/utils/TableGen/DAGISelMatcher.h index 826080f..a6a2fbe 100644 --- a/llvm/utils/TableGen/DAGISelMatcher.h +++ b/llvm/utils/TableGen/DAGISelMatcher.h @@ -21,7 +21,7 @@ #include namespace llvm { - struct CodeGenRegister; + class CodeGenRegister; class CodeGenDAGPatterns; class CodeGenInstruction; class Matcher; diff --git a/llvm/utils/TableGen/DFAPacketizerEmitter.cpp b/llvm/utils/TableGen/DFAPacketizerEmitter.cpp index da8538f..64c7884 100644 --- a/llvm/utils/TableGen/DFAPacketizerEmitter.cpp +++ b/llvm/utils/TableGen/DFAPacketizerEmitter.cpp @@ -24,6 +24,7 @@ #include "llvm/TableGen/TableGenBackend.h" #include #include +#include #include #include #include -- 2.7.4