| OpenASIP 2.2
    | 
#include <OffsetAliasAnalyzer.hh>


| Classes | |
| struct | OffsetData | 
| Public Member Functions | |
| virtual bool | isAddressTraceable (DataDependenceGraph &ddg, const ProgramOperation &pop) | 
| virtual AliasingResult | analyze (DataDependenceGraph &ddg, const ProgramOperation &pop1, const ProgramOperation &pop2, MoveNodeUse::BBRelation bbRelation) | 
| OffsetAliasAnalyzer (const TCEString &sp) | |
| ~OffsetAliasAnalyzer () | |
|  Public Member Functions inherited from MemoryAliasAnalyzer | |
| virtual void | initProcedure (TTAProgram::Procedure &) | 
| virtual | ~MemoryAliasAnalyzer () | 
| Private Member Functions | |
| bool | analyzeLoopPtrIncrease (const DataDependenceGraph &ddg, const MoveNode &mn, long &offset) | 
| bool | sameLoopAndPrevSources (const DataDependenceGraph &ddg, const MoveNode &anc1, const MoveNode &anc2) | 
| Private Attributes | |
| std::map< int, OffsetData > | offsetData_ | 
| TCEString | sp_ | 
| Additional Inherited Members | |
|  Public Types inherited from MemoryAliasAnalyzer | |
| enum | AliasingResult { ALIAS_FALSE = 0 , ALIAS_TRUE = 1 , ALIAS_UNKNOWN = 2 , ALIAS_PARTIAL = 3 } | 
|  Protected Member Functions inherited from MemoryAliasAnalyzer | |
| AliasingResult | compareIndeces (int index1, int index2, const ProgramOperation &pop1, const ProgramOperation &pop2) | 
|  Static Protected Member Functions inherited from MemoryAliasAnalyzer | |
| static const MoveNode * | addressOperandMove (const ProgramOperation &po) | 
| static TwoPartAddressOperandDetection | findTwoPartAddressOperands (const ProgramOperation &po) | 
| static const MoveNode * | searchLoopIndexBasedIncrement (DataDependenceGraph &ddg, const MoveNode &mn, long &loopIncrement) | 
| static const MoveNode * | findIncrement (const MoveNode &mn, long &increment) | 
| static const MoveNode * | detectConstantScale (const MoveNode &mn, int &shiftAmount) | 
Definition at line 46 of file OffsetAliasAnalyzer.hh.
| OffsetAliasAnalyzer::OffsetAliasAnalyzer | ( | const TCEString & | sp | ) | 
Definition at line 492 of file OffsetAliasAnalyzer.cc.
| OffsetAliasAnalyzer::~OffsetAliasAnalyzer | ( | ) | 
Definition at line 490 of file OffsetAliasAnalyzer.cc.
| 
 | virtual | 
Analyzes aliasing of two memory adderesses.
Checks if they are stack offsets and compares the offsets.
| ddg | ddg where they belong. | 
| node1 | first node to compare | 
| another | anpther node to compare | 
Implements MemoryAliasAnalyzer.
Definition at line 166 of file OffsetAliasAnalyzer.cc.
References MemoryAliasAnalyzer::addressOperandMove(), MemoryAliasAnalyzer::ALIAS_UNKNOWN, analyzeLoopPtrIncrease(), MoveNodeSet::at(), MemoryAliasAnalyzer::compareIndeces(), MoveNodeSet::count(), MemoryAliasAnalyzer::findTwoPartAddressOperands(), ProgramOperation::inputNode(), SimValue::intValue(), TTAProgram::Terminal::isGPR(), TTAProgram::Terminal::isImmediate(), MoveNode::isSourceConstant(), MoveNode::isSourceOperation(), MoveNodeUse::LOOP, MoveNode::move(), Operation::name(), offsetData_, MemoryAliasAnalyzer::TwoPartAddressOperandDetection::offsetOperation, DataDependenceGraph::onlyRegisterRawAncestor(), MemoryAliasAnalyzer::TwoPartAddressOperandDetection::operand1, MemoryAliasAnalyzer::TwoPartAddressOperandDetection::operand2, ProgramOperation::operation(), ProgramOperation::poId(), DataDependenceGraph::regRawSuccessorCount(), sameLoopAndPrevSources(), TTAProgram::Move::source(), MoveNode::sourceOperation(), sp_, and TTAProgram::Terminal::value().

| 
 | private | 
Definition at line 495 of file OffsetAliasAnalyzer.cc.
References MemoryAliasAnalyzer::findIncrement(), and DataDependenceGraph::onlyRegisterRawSource().
Referenced by analyze().

| 
 | virtual | 
Checks if the node contains an adress that is an offset.
| ddg | DDG where to analyze from | 
| mn | the node being checked | 
Implements MemoryAliasAnalyzer.
Definition at line 59 of file OffsetAliasAnalyzer.cc.
References MemoryAliasAnalyzer::addressOperandMove(), MoveNodeSet::at(), MoveNodeSet::count(), MemoryAliasAnalyzer::findTwoPartAddressOperands(), ProgramOperation::inputNode(), TTAProgram::Terminal::isGPR(), TTAProgram::Terminal::isImmediate(), MoveNode::isSourceOperation(), MoveNode::move(), Operation::name(), offsetData_, MemoryAliasAnalyzer::TwoPartAddressOperandDetection::offsetOperation, DataDependenceGraph::onlyRegisterRawAncestor(), MemoryAliasAnalyzer::TwoPartAddressOperandDetection::operand1, MemoryAliasAnalyzer::TwoPartAddressOperandDetection::operand2, ProgramOperation::operation(), ProgramOperation::poId(), DataDependenceGraph::regRawSuccessorCount(), TTAProgram::Move::source(), MoveNode::sourceOperation(), and sp_.

| 
 | private | 
Definition at line 478 of file OffsetAliasAnalyzer.cc.
References DataDependenceGraph::onlyRegisterRawSource().
Referenced by analyze().

| 
 | private | 
Definition at line 69 of file OffsetAliasAnalyzer.hh.
Referenced by analyze(), and isAddressTraceable().
| 
 | private | 
Definition at line 71 of file OffsetAliasAnalyzer.hh.
Referenced by analyze(), and isAddressTraceable().