#include "Common/CodeGenSchedule.h"
#include "Common/CodeGenTarget.h"
#include "DFAEmitter.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TableGen/Record.h"
#include "llvm/TableGen/TableGenBackend.h"
#include <cassert>
#include <cstdint>
#include <deque>
#include <map>
#include <set>
#include <string>
#include <unordered_map>
#include <vector>
#define DEBUG_TYPE …
usingnamespacellvm;
#define DFA_MAX_RESOURCES …
namespace {
ResourceVector;
struct ScheduleClass { … };
class DFAPacketizerEmitter { … };
}
DFAPacketizerEmitter::DFAPacketizerEmitter(const RecordKeeper &R)
: … { … }
int DFAPacketizerEmitter::collectAllFuncUnits(
ArrayRef<const CodeGenProcModel *> ProcModels) { … }
int DFAPacketizerEmitter::collectAllComboFuncs(
ArrayRef<const Record *> ComboFuncList) { … }
ResourceVector
DFAPacketizerEmitter::getResourcesForItinerary(const Record *Itinerary) { … }
void DFAPacketizerEmitter::createScheduleClasses(
unsigned ItineraryIdx, ArrayRef<const Record *> Itineraries) { … }
void DFAPacketizerEmitter::run(raw_ostream &OS) { … }
void DFAPacketizerEmitter::emitForItineraries(
raw_ostream &OS, std::vector<const CodeGenProcModel *> &ProcModels,
std::string DFAName) { … }
static TableGen::Emitter::OptClass<DFAPacketizerEmitter>
X("gen-dfa-packetizer", "Generate DFA Packetizer for VLIW targets");