aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2005-06-17 04:00:57 +0000
committerTanya Lattner <tonic@nondot.org>2005-06-17 04:00:57 +0000
commitd454a973a5c4e7c09e84a235ba8f9c458bb67f79 (patch)
tree8914bc63f8dc2c431cecf3c735b6b45cef1ac813 /lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp
parent770e991bc4b8c0249325056aadf2af3b9da9ff5f (diff)
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
Diffstat (limited to 'lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp')
-rw-r--r--lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp b/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp
index 25ad03ad7d..d0b5db304a 100644
--- a/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp
+++ b/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp
@@ -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