Go to the documentation of this file.
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) {
165 const 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()) {
virtual int affectedByCount() const
void addPath(const std::string &path)
virtual void setReadsMemory(bool setting)
std::map< std::string, Operation * > OperationTable
Container for operations indexed by their names.
static void cleanupCache()
virtual void addOutput(Operand *operand)
virtual bool dependsOn(const Operation &op) const
static NullOperation & instance()
#define assert(condition)
bool sharesState(const Operation &op)
virtual void setCall(bool setting)
#define abortWithError(message)
static OperationTable operationCache_
Contains all operations that have been already requested by the client.
virtual void setControlFlowOperation(bool setting)
static OperationIndex * index_
Indexed table used to find out which operation module contains the given operation.
static std::vector< std::string > osalPaths()
static const llvm::MCInstrInfo * llvmTargetInstrInfo_
If this is set, OSAL data is loaded from the TargetInstrInfo instead of .opp XML files....
static NullOperationBehavior & instance()
Operation * loadFromLLVM(const llvm::MCInstrDesc &tid)
virtual void addInput(Operand *operand)
Operation & operation(const char *name)
Operation * effectiveOperation(const TCEString &name)
virtual void setWritesMemory(bool setting)
static NullOperationModule & instance()
virtual int affectsCount() const
OperationModule & moduleOf(const std::string &name)
virtual void setBranch(bool setting)