52 long& addr,
long& loopIncrement) {
55 while (mn != NULL && mn->
isMove()) {
59 if (prevSrc == NULL) {
71 if (incrementInput != NULL) {
111 long inc1 = 0, inc2 = 0;
static bool getConstantAddress(DataDependenceGraph &ddg, const ProgramOperation &po, long &addr, long &loopIncrement)
virtual AliasingResult analyze(DataDependenceGraph &ddg, const ProgramOperation &pop1, const ProgramOperation &pop2, MoveNodeUse::BBRelation bbInfo)
virtual bool isAddressTraceable(DataDependenceGraph &ddg, const ProgramOperation &pop)
MoveNode * onlyRegisterRawSource(const MoveNode &mn, int allowGuardEdges=2, int backEdges=0) const
static const MoveNode * findIncrement(const MoveNode &mn, long &increment)
AliasingResult compareIndeces(int index1, int index2, const ProgramOperation &pop1, const ProgramOperation &pop2)
static const MoveNode * searchLoopIndexBasedIncrement(DataDependenceGraph &ddg, const MoveNode &mn, long &loopIncrement)
static const MoveNode * addressOperandMove(const ProgramOperation &po)
bool isSourceVariable() const
TTAProgram::Move & move()
bool isSourceOperation() const
unsigned int unsignedValue() const
bool isFunctionCall() const
Terminal & source() const
virtual SimValue value() const
virtual bool isImmediate() const