OpenASIP
2.0
|
#include <ConstantAliasAnalyzer.hh>
Public Member Functions | |
virtual bool | isAddressTraceable (DataDependenceGraph &ddg, const ProgramOperation &pop) |
virtual AliasingResult | analyze (DataDependenceGraph &ddg, const ProgramOperation &pop1, const ProgramOperation &pop2, MoveNodeUse::BBRelation bbInfo) |
~ConstantAliasAnalyzer () | |
Public Member Functions inherited from MemoryAliasAnalyzer | |
virtual void | initProcedure (TTAProgram::Procedure &) |
virtual | ~MemoryAliasAnalyzer () |
Static Public Member Functions | |
static bool | getConstantAddress (DataDependenceGraph &ddg, const ProgramOperation &po, long &addr, long &loopIncrement) |
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 42 of file ConstantAliasAnalyzer.hh.
ConstantAliasAnalyzer::~ConstantAliasAnalyzer | ( | ) |
Definition at line 130 of file ConstantAliasAnalyzer.cc.
|
virtual |
Implements MemoryAliasAnalyzer.
Definition at line 104 of file ConstantAliasAnalyzer.cc.
References MoveNodeUse::LOOP.
|
static |
Definition at line 50 of file ConstantAliasAnalyzer.cc.
References TTAProgram::Move::isFunctionCall(), TTAProgram::Terminal::isImmediate(), MoveNode::isMove(), MoveNode::isSourceOperation(), MoveNode::isSourceVariable(), MoveNode::move(), DataDependenceGraph::onlyRegisterRawSource(), TTAProgram::Move::source(), SimValue::unsignedValue(), and TTAProgram::Terminal::value().
Referenced by GlobalVsStackAA::analyze(), and GlobalVsStackAA::isAddressTraceable().
|
virtual |
Checks whether the analyzer knows anything about the address.
ie. if it can return true or false to some query concerning this address.
Implements MemoryAliasAnalyzer.
Definition at line 95 of file ConstantAliasAnalyzer.cc.