diff options
author | Tanya Lattner <tonic@nondot.org> | 2005-06-17 04:00:57 +0000 |
---|---|---|
committer | Tanya Lattner <tonic@nondot.org> | 2005-06-17 04:00:57 +0000 |
commit | d454a973a5c4e7c09e84a235ba8f9c458bb67f79 (patch) | |
tree | 8914bc63f8dc2c431cecf3c735b6b45cef1ac813 /lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp | |
parent | 770e991bc4b8c0249325056aadf2af3b9da9ff5f (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.cpp | 25 |
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 |