mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Numerous bug fixes and the completed modschedSB algorithm (minor bugs still exist for course).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22239 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -159,10 +159,10 @@ void DependenceAnalyzer::advancedDepAnalysis(GetElementPtrInst *gp1,
|
||||
SCEVHandle SV2 = SE->getSCEV(Gep2Idx);
|
||||
|
||||
//Now handle special cases of dependence analysis
|
||||
SV1->print(std::cerr);
|
||||
std::cerr << "\n";
|
||||
SV2->print(std::cerr);
|
||||
std::cerr << "\n";
|
||||
//SV1->print(std::cerr);
|
||||
//std::cerr << "\n";
|
||||
//SV2->print(std::cerr);
|
||||
//std::cerr << "\n";
|
||||
|
||||
//Check if we have an SCEVAddExpr, cause we can only handle those
|
||||
SCEVAddRecExpr *SVAdd1 = dyn_cast<SCEVAddRecExpr>(SV1);
|
||||
@@ -217,7 +217,7 @@ void DependenceAnalyzer::advancedDepAnalysis(GetElementPtrInst *gp1,
|
||||
|
||||
//Find constant index difference
|
||||
int diff = A1->getValue()->getRawValue() - A2->getValue()->getRawValue();
|
||||
std::cerr << diff << "\n";
|
||||
//std::cerr << diff << "\n";
|
||||
if(diff > 5)
|
||||
diff = 2;
|
||||
|
||||
@@ -240,14 +240,21 @@ void DependenceAnalyzer::createDep(std::vector<Dependence> &deps,
|
||||
|
||||
//If load/store pair
|
||||
if(valLoad && !val2Load) {
|
||||
//Anti Dep
|
||||
deps.push_back(Dependence(diff, Dependence::AntiDep));
|
||||
if(srcBeforeDest)
|
||||
//Anti Dep
|
||||
deps.push_back(Dependence(diff, Dependence::AntiDep));
|
||||
else
|
||||
deps.push_back(Dependence(diff, Dependence::TrueDep));
|
||||
|
||||
++NumDeps;
|
||||
}
|
||||
//If store/load pair
|
||||
else if(!valLoad && val2Load) {
|
||||
//True Dep
|
||||
deps.push_back(Dependence(diff, Dependence::TrueDep));
|
||||
if(srcBeforeDest)
|
||||
//True Dep
|
||||
deps.push_back(Dependence(diff, Dependence::TrueDep));
|
||||
else
|
||||
deps.push_back(Dependence(diff, Dependence::AntiDep));
|
||||
++NumDeps;
|
||||
}
|
||||
//If store/store pair
|
||||
|
Reference in New Issue
Block a user