aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/VarLenCodeEmitterGen.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm-project@meinersbur.de>2022-05-06 02:43:49 -0500
committerMichael Kruse <llvm-project@meinersbur.de>2022-05-06 02:43:49 -0500
commitd3460d2a890ccb4ee84ffd05d4a722ff82b5170d (patch)
tree19c511c63d14da385bc907b4aa99276b8636dc1a /llvm/utils/TableGen/VarLenCodeEmitterGen.cpp
parentfdb6ddcfeb62be7dbc502a4a4ed7c5be11c1c9b6 (diff)
parent9c1085c7e20bdd7c4a487f50313ebeeb2b6683b8 (diff)
downloadllvm-users/meinersbur/irbuilder-ompregion.zip
llvm-users/meinersbur/irbuilder-ompregion.tar.gz
llvm-users/meinersbur/irbuilder-ompregion.tar.bz2
Merge branch 'main' into irbuilder-ompregionusers/meinersbur/irbuilder-ompregion
Diffstat (limited to 'llvm/utils/TableGen/VarLenCodeEmitterGen.cpp')
-rw-r--r--llvm/utils/TableGen/VarLenCodeEmitterGen.cpp48
1 files changed, 2 insertions, 46 deletions
diff --git a/llvm/utils/TableGen/VarLenCodeEmitterGen.cpp b/llvm/utils/TableGen/VarLenCodeEmitterGen.cpp
index 128a680..ce93725 100644
--- a/llvm/utils/TableGen/VarLenCodeEmitterGen.cpp
+++ b/llvm/utils/TableGen/VarLenCodeEmitterGen.cpp
@@ -58,7 +58,6 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TableGen/Error.h"
-#include "llvm/TableGen/Record.h"
using namespace llvm;
@@ -67,48 +66,6 @@ namespace {
class VarLenCodeEmitterGen {
RecordKeeper &Records;
- struct EncodingSegment {
- unsigned BitWidth;
- const Init *Value;
- StringRef CustomEncoder = "";
- };
-
- class VarLenInst {
- RecordVal *TheDef;
- size_t NumBits;
-
- // Set if any of the segment is not fixed value.
- bool HasDynamicSegment;
-
- SmallVector<EncodingSegment, 4> Segments;
-
- void buildRec(const DagInit *DI);
-
- StringRef getCustomEncoderName(const Init *EI) const {
- if (const auto *DI = dyn_cast<DagInit>(EI)) {
- if (DI->getNumArgs() && isa<StringInit>(DI->getArg(0)))
- return cast<StringInit>(DI->getArg(0))->getValue();
- }
- return "";
- }
-
- public:
- VarLenInst() : TheDef(nullptr), NumBits(0U), HasDynamicSegment(false) {}
-
- explicit VarLenInst(const DagInit *DI, RecordVal *TheDef);
-
- /// Number of bits
- size_t size() const { return NumBits; }
-
- using const_iterator = decltype(Segments)::const_iterator;
-
- const_iterator begin() const { return Segments.begin(); }
- const_iterator end() const { return Segments.end(); }
- size_t getNumSegments() const { return Segments.size(); }
-
- bool isFixedValueOnly() const { return !HasDynamicSegment; }
- };
-
DenseMap<Record *, VarLenInst> VarLenInsts;
// Emit based values (i.e. fixed bits in the encoded instructions)
@@ -129,15 +86,14 @@ public:
} // end anonymous namespace
-VarLenCodeEmitterGen::VarLenInst::VarLenInst(const DagInit *DI,
- RecordVal *TheDef)
+VarLenInst::VarLenInst(const DagInit *DI, const RecordVal *TheDef)
: TheDef(TheDef), NumBits(0U) {
buildRec(DI);
for (const auto &S : Segments)
NumBits += S.BitWidth;
}
-void VarLenCodeEmitterGen::VarLenInst::buildRec(const DagInit *DI) {
+void VarLenInst::buildRec(const DagInit *DI) {
assert(TheDef && "The def record is nullptr ?");
std::string Op = DI->getOperator()->getAsString();