OpenASIP
2.0
|
#include <LoopAnalyzer.hh>
Classes | |
struct | InitAndUpdate |
struct | LoopAnalysisResult |
Public Types | |
typedef std::pair< int, MoveNode * > | EndCondition |
Static Public Member Functions | |
static LoopAnalysisResult * | analyze (BasicBlockNode &bbn, DataDependenceGraph &ddg) |
Static Private Member Functions | |
static InitAndUpdate * | findInitAndUpdate (DataDependenceGraph &ddg, MoveNode &cmpVal) |
static EndCondition * | findEndCond (DataDependenceGraph &ddg, MoveNode &cmpVal, bool allowVariable) |
static EndCondition * | tryTrackCommonAncestor (DataDependenceGraph &ddg, MoveNode &init, MoveNode &endCond) |
Definition at line 6 of file LoopAnalyzer.hh.
typedef std::pair<int, MoveNode*> LoopAnalyzer::EndCondition |
Definition at line 20 of file LoopAnalyzer.hh.
|
static |
Definition at line 14 of file LoopAnalyzer.cc.
References MoveNodeSet::at(), BasicBlockNode::basicBlock(), MoveNodeSet::count(), findEndCond(), findInitAndUpdate(), TTAProgram::Move::guard(), LoopAnalyzer::InitAndUpdate::initNode, LoopAnalyzer::InitAndUpdate::initVal, ProgramOperation::inputNode(), TTAProgram::CodeSnippet::instructionCount(), SimValue::intValue(), TTAProgram::Terminal::isGPR(), TTAProgram::Terminal::isImmediate(), TTAProgram::Terminal::isImmediateRegister(), TTAProgram::MoveGuard::isInverted(), TTAProgram::Move::isJump(), MoveNode::isSourceOperation(), MoveNode::isSourceVariable(), LoopAnalyzer::InitAndUpdate::loopEdge, TTAProgram::Instruction::move(), MoveNode::move(), TTAProgram::Instruction::moveCount(), Operation::name(), BoostGraph< GraphNode, GraphEdge >::name(), DataDependenceGraph::nodeOfMove(), DataDependenceGraph::onlyGuardDefOfMove(), DataDependenceGraph::onlyRegisterRawSource(), ProgramOperation::operation(), TTAProgram::Move::source(), MoveNode::sourceOperation(), ProgramOperation::toString(), tryTrackCommonAncestor(), LoopAnalyzer::InitAndUpdate::update, TTAProgram::Terminal::value(), Application::verboseLevel(), and GraphBase< GraphNode, GraphEdge >::writeToDotFile().
Referenced by BBSchedulerController::handleBasicBlock().
|
staticprivate |
Definition at line 357 of file LoopAnalyzer.cc.
References assert, MoveNodeSet::at(), MoveNodeSet::count(), DataDependenceGraph::getBasicBlockNode(), ProgramOperation::inputNode(), SimValue::intValue(), TTAProgram::Terminal::isGPR(), MoveNode::isSourceConstant(), MoveNode::isSourceOperation(), MoveNode::isSourceVariable(), MoveNode::move(), Operation::name(), DataDependenceGraph::onlyRegisterRawSource(), ProgramOperation::operation(), TTAProgram::Move::source(), MoveNode::sourceOperation(), MoveNode::toString(), and TTAProgram::Terminal::value().
Referenced by analyze().
|
staticprivate |
Definition at line 471 of file LoopAnalyzer.cc.
References MoveNodeSet::at(), MoveNodeSet::count(), ProgramOperation::inputNode(), SimValue::intValue(), TTAProgram::Terminal::isGPR(), TTAProgram::Terminal::isImmediate(), MoveNode::isSourceConstant(), MoveNode::isSourceOperation(), MoveNode::isSourceVariable(), MoveNode::move(), Operation::name(), DataDependenceGraph::onlyRegisterRawSource(), ProgramOperation::operation(), DataDependenceGraph::regRawPredecessors(), TTAProgram::Move::source(), MoveNode::sourceOperation(), MoveNode::toString(), TTAProgram::Terminal::value(), and Application::verboseLevel().
Referenced by analyze().
|
staticprivate |
Definition at line 649 of file LoopAnalyzer.cc.
References MoveNodeSet::at(), MoveNodeSet::count(), ProgramOperation::inputNode(), SimValue::intValue(), TTAProgram::Terminal::isImmediate(), MoveNode::isSourceOperation(), MoveNode::move(), Operation::name(), DataDependenceGraph::onlyRegisterRawSource(), ProgramOperation::operation(), TTAProgram::Move::source(), MoveNode::sourceOperation(), and TTAProgram::Terminal::value().
Referenced by analyze().