OpenASIP
2.0
|
#include <OperationPool.hh>
Public Member Functions | |
OperationPool () | |
virtual | ~OperationPool () |
Operation & | operation (const char *name) |
OperationIndex & | index () |
bool | sharesState (const Operation &op) |
Static Public Member Functions | |
static void | cleanupCache () |
static void | setLLVMTargetInstrInfo (const llvm::MCInstrInfo *tid) |
Private Member Functions | |
OperationPool (const OperationPool &) | |
Copying not allowed. More... | |
OperationPool & | operator= (const OperationPool &) |
Assignment not allowed. More... | |
Private Attributes | |
OperationPoolPimpl * | pimpl_ |
Private implementation in a separate source file. More... | |
OperationPool provides interface for obtaining operations of the target architecture template.
Definition at line 52 of file OperationPool.hh.
OperationPool::OperationPool | ( | ) |
Constructor.
Records the search paths of the operation modules.
Definition at line 64 of file OperationPool.cc.
|
virtual |
Destructor.
Cleans proxies and operations.
Definition at line 72 of file OperationPool.cc.
References pimpl_.
|
private |
Copying not allowed.
|
static |
Cleans up the static Operation cache.
Deletes also the Operation instances, so be sure you are not using them after calling this!
Definition at line 84 of file OperationPool.cc.
References OperationPoolPimpl::cleanupCache().
Referenced by OpsetDialog::TransferDataToWindow().
OperationIndex & OperationPool::index | ( | ) |
Returns the operation index of operation pool.
Definition at line 109 of file OperationPool.cc.
References OperationPoolPimpl::index(), and pimpl_.
Referenced by OperationPropertyDialog::createBitmaps(), VectorLSGenerator::createVectorLSU(), ProGeTools::generateableDAGOperations(), Automagic::generateableDAGOperations(), OperationPropertyDialog::onDeleteInputOperand(), OperationPropertyDialog::onDeleteOutputOperand(), FUGen::parseOperations(), OperationPropertyDialog::saveOperation(), OpsetDialog::TransferDataToWindow(), OperationPropertyDialog::updateAffected(), and writeCustomOpMacros().
Operation & OperationPool::operation | ( | const char * | name | ) |
Looks up an operation identified by its name and returns a reference to it.
The first found operation is returned. If operation is not found, a null operation is returned.
name | The name of the operation. |
Definition at line 99 of file OperationPool.cc.
References OperationPoolPimpl::operation(), and pimpl_.
Referenced by MachineStateBuilder::addVirtualOpcodeSettingPortsToFU(), TDGen::analyzeMachineVectorRegisterClasses(), Peel2BBLoops::appendBB(), MachineStateBuilder::bindPortsToOperands(), ControlFlowGraph::buildMBBFromBB(), AddressSpaceCheck::check(), TTAProgram::CodeGenerator::createBreakOperation(), TTAProgram::CodeGenerator::createForLoopBufferInit(), OpsetDialog::createOperation(), OperationDAGBuilder::createOperationNode(), TDGen::createSelectPatterns(), TTAProgram::CodeGenerator::createTerminalFUPort(), VectorLSGenerator::createVectorLSU(), TTAProgram::CodeGenerator::createWhileLoopBufferInit(), FUGen::DAGNodeOperandWidth(), SocketBusConnCmd::Do(), llvm::LLVMTCEBuilder::emitComparisonForBranch(), llvm::LLVMTCEBuilder::emitGlobalXXtructorCalls(), llvm::LLVMTCEBuilder::emitInstruction(), llvm::LLVMTCEBuilder::emitOperationMacro(), llvm::LLVMTCEBuilder::emitRemaingingBrach(), llvm::LLVMTCEBuilder::emitReturn(), OperationDAGSelector::findDags(), MachineInfo::findWidestOperand(), TDGen::gatherAllMachineOperations(), Automagic::generateableDAGOperations(), ProGeTools::generateableDAGOperations(), CompiledSimCodeGenerator::generateTriggerCode(), CompiledSimCodeGenerator::handleOperation(), UniversalFunctionUnit::hasOperation(), MachineConnectivityCheck::isPortApplicableToWidths(), MultiLatencyOperationExecutor::MultiLatencyOperationExecutor(), Peel2BBLoops::negateOp(), OpsetDialog::onSelectOperation(), operandBindingsString(), MachineInfo::operandFromPort(), MachineConnectivityCheck::operandWidth(), UniversalFunctionUnit::operation(), OsalInterpreter::operation(), MachineInfo::osalOperation(), MIDDGNode::osalOperationName(), FUGen::parseOperations(), printLatexFunctionUnitDescription(), ConstantTransformer::runOnMachineFunction(), FUGen::scheduleOperations(), TTAProgram::TerminalFUPort::setHintOperation(), TTAProgram::TerminalFUPort::setOperation(), BFCopyRegWithOp::splitMove(), TTAProgram::TerminalFUPort::TerminalFUPort(), writeCustomOpMacros(), TDGen::writeInstrInfo(), TDGen::writeIntegerImmediateDefs(), TDGen::writeScalarOperationExploitations(), and TDGen::writeVectorLoadStoreOperationExploitations().
|
private |
Assignment not allowed.
|
static |
Used to force loading of OSAL data straight from LLVM backend data instead of the .opp XML files.
Definition at line 132 of file OperationPool.cc.
References OperationPoolPimpl::setLLVMTargetInstrInfo().
Referenced by llvm::LLVMTCEScheduler::runOnMachineFunction().
bool OperationPool::sharesState | ( | const Operation & | op | ) |
Checks globally from all the loaded operations whether the given operation shares state with any of them.
In case another operation affects this operation or vice-versa, they are assumed to share state. The shares-property has to be in only one of the operation's description.
Definition at line 123 of file OperationPool.cc.
References pimpl_, and OperationPoolPimpl::sharesState().
Referenced by DataDependenceGraphBuilder::createSideEffectEdges(), and DataDependenceGraphBuilder::createTriggerDependencies().
|
private |
Private implementation in a separate source file.
Definition at line 71 of file OperationPool.hh.
Referenced by index(), operation(), sharesState(), and ~OperationPool().