58#pragma GCC diagnostic ignored "-Wunused-parameter"
60#include <llvm/MC/MCInstrDesc.h>
61#include <llvm/MC/MCInstrInfo.h>
63#pragma GCC diagnostic warning "-Wunused-parameter"
81 for (
unsigned int i = 0; i < paths.size(); i++) {
118 OperationTable::iterator it =
121 return *((*it).second);
133 if (operName ==
TCEString(name).lower()) {
136 return *llvmOperation;
140 TCEString(
"Did not find info for LLVM operation ") + name);
149 if (effective != NULL) {
165const llvm::MCInstrDesc& tid
170 unsigned outputs = tid.getNumDefs();
171 unsigned inputs = tid.getNumOperands() - outputs;
180 for (
unsigned opr = 0; opr < outputs; ++opr) {
186 for (
unsigned opr = 0; opr < inputs; ++opr) {
194 if (tid.isBranch() || tid.isReturn()) {
201 if (tid.mayStore()) {
#define abortWithError(message)
#define assert(condition)
static std::vector< std::string > osalPaths()
static NullOperationBehavior & instance()
static NullOperationModule & instance()
static NullOperation & instance()
Operation * effectiveOperation(const TCEString &name)
void addPath(const std::string &path)
Operation & operation(const char *name)
static OperationIndex * index_
Indexed table used to find out which operation module contains the given operation.
std::map< std::string, Operation * > OperationTable
Container for operations indexed by their names.
static OperationTable operationCache_
Contains all operations that have been already requested by the client.
Operation * loadFromLLVM(const llvm::MCInstrDesc &tid)
bool sharesState(const Operation &op)
static const llvm::MCInstrInfo * llvmTargetInstrInfo_
If this is set, OSAL data is loaded from the TargetInstrInfo instead of .opp XML files....
static void cleanupCache()
virtual void setWritesMemory(bool setting)
virtual int affectedByCount() const
virtual bool dependsOn(const Operation &op) const
virtual void setCall(bool setting)
virtual void addOutput(Operand *operand)
virtual void setControlFlowOperation(bool setting)
virtual void addInput(Operand *operand)
virtual int affectsCount() const
virtual void setBranch(bool setting)
virtual void setReadsMemory(bool setting)