13#ifndef AIE_REGISTER_DATABASE_H
14#define AIE_REGISTER_DATABASE_H
16#include "llvm/ADT/StringMap.h"
17#include "llvm/ADT/StringRef.h"
18#include "llvm/Support/JSON.h"
65 static std::unique_ptr<RegisterDatabase>
loadAIE2();
69 llvm::StringRef module)
const;
72 std::optional<uint32_t>
lookupEvent(llvm::StringRef name,
73 llvm::StringRef module)
const;
81 bool loadFromJSON(llvm::StringRef registerPath, llvm::StringRef eventPath);
83 llvm::StringMap<RegisterInfo> registers_;
84 llvm::StringMap<EventInfo> events_;
Register and event database for a specific architecture.
uint32_t encodeFieldValue(const BitFieldInfo &field, uint32_t value) const
Encode a value for a specific bitfield.
static std::unique_ptr< RegisterDatabase > loadAIE2()
Load database for AIE2 architecture.
const RegisterInfo * lookupRegister(llvm::StringRef name, llvm::StringRef module) const
Lookup register by name and module.
std::optional< uint32_t > lookupEvent(llvm::StringRef name, llvm::StringRef module) const
Lookup event by name and module.
Bit field information for a register.
uint32_t getWidth() const
const BitFieldInfo * getField(llvm::StringRef fieldName) const
std::vector< BitFieldInfo > bit_fields
std::string uint32_t width