OpenASIP 2.2
Loading...
Searching...
No Matches
GlobalVsStackAA.cc
Go to the documentation of this file.
1#include "GlobalVsStackAA.hh"
4
5
6bool
9 long tmp;
10 long tmp2;
11 return ConstantAliasAnalyzer::getConstantAddress(ddg, po, tmp, tmp2) ||
12 StackAliasAnalyzer::getStackOffset(ddg, po, tmp, tmp2, sp_);
13}
14
15// TODO: does not handle unaligned 64-bit memory operations well.
19 const ProgramOperation& pop1,
20 const ProgramOperation& pop2,
22
23 long tmp;
24 long tmp2;
25 long tmp3;
26 long tmp4;
27 if ((StackAliasAnalyzer::getStackOffset(ddg, pop2, tmp2, tmp4, sp_) &&
28 ConstantAliasAnalyzer::getConstantAddress(ddg, pop1, tmp, tmp3)) ||
29 (StackAliasAnalyzer::getStackOffset(ddg, pop1, tmp2, tmp4, sp_) &&
30 ConstantAliasAnalyzer::getConstantAddress(ddg, pop2, tmp, tmp3))) {
31 return ALIAS_FALSE;
32 }
33 return ALIAS_UNKNOWN;
34
35}
36
38
static bool getConstantAddress(DataDependenceGraph &ddg, const ProgramOperation &po, long &addr, long &loopIncrement)
GlobalVsStackAA(const TCEString &sp)
virtual AliasingResult analyze(DataDependenceGraph &ddg, const ProgramOperation &pop1, const ProgramOperation &pop2, MoveNodeUse::BBRelation bbInfo)
virtual bool isAddressTraceable(DataDependenceGraph &ddg, const ProgramOperation &pop)
virtual ~GlobalVsStackAA()
static bool getStackOffset(DataDependenceGraph &ddg, const ProgramOperation &pop, long &offset, long &loopIncrement, const TCEString &sp_)