/gem5/src/cpu/pred/ |
H A D | tage.cc | 56 TAGE::update(ThreadID tid, Addr branch_pc, bool taken, void* bp_history, argument 76 branch_pc, taken); 78 tage->condBranchUpdate(tid, branch_pc, taken, tage_bi, nrand, 83 tage->updateHistories(tid, branch_pc, taken, tage_bi, false, inst, 97 TAGE::predict(ThreadID tid, Addr branch_pc, bool cond_branch, void* &b) argument 101 return tage->tagePredict(tid, branch_pc, cond_branch, bi->tageBranchInfo); 105 TAGE::lookup(ThreadID tid, Addr branch_pc, void* &bp_history) argument 107 bool retval = predict(tid, branch_pc, true, bp_history); 111 DPRINTF(Tage, "Lookup branch: %lx; predict:%d\n", branch_pc, retval); 113 tage->updateHistories(tid, branch_pc, retva 119 btbUpdate(ThreadID tid, Addr branch_pc, void* &bp_history) argument [all...] |
H A D | tage_sc_l_64KB.cc | 84 TAGE_SC_L_64KB_StatisticalCorrector::getIndBiasBank(Addr branch_pc, argument 89 ((branch_pc^(branch_pc>>2))<<7)) & ((1<<logBias) -1); 93 TAGE_SC_L_64KB_StatisticalCorrector::gPredictions(ThreadID tid, Addr branch_pc, argument 100 (branch_pc << 1) + bi->predBeforeSC, sh->bwHist, bwm, 104 branch_pc, pathHist, pm, pgehl, pnb, logPnb, wp); 107 branch_pc, sh->getLocalHistory(1, branch_pc), lm, 111 branch_pc, sh->getLocalHistory(2, branch_pc), s 141 scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, BranchInfo* tage_bi, Addr corrTarget) argument 264 handleTAGEUpdate(Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) argument [all...] |
H A D | statistical_corrector.cc | 149 StatisticalCorrector::getIndBias(Addr branch_pc, BranchInfo* bi, argument 152 return (((((branch_pc ^(branch_pc >>2))<<1) ^ (bi->lowConf & bias)) <<1) 157 StatisticalCorrector::getIndBiasSK(Addr branch_pc, BranchInfo* bi) const argument 159 return (((((branch_pc ^ (branch_pc >> (logBias-2)))<<1) ^ 164 StatisticalCorrector::getIndUpd(Addr branch_pc) const 166 return ((branch_pc ^ (branch_pc >>2)) & ((1 << (logSizeUp)) - 1)); 170 StatisticalCorrector::getIndUpds(Addr branch_pc) cons 176 gIndex(Addr branch_pc, int64_t bhist, int logs, int nbr, int i) argument 186 gPredict(Addr branch_pc, int64_t hist, std::vector<int> & length, std::vector<int8_t> * tab, int nbr, int logs, std::vector<int8_t> & w) argument 202 gUpdate(Addr branch_pc, bool taken, int64_t hist, std::vector<int> & length, std::vector<int8_t> * tab, int nbr, int logs, std::vector<int8_t> & w, BranchInfo* bi) argument 223 scPredict(ThreadID tid, Addr branch_pc, bool cond_branch, BranchInfo* bi, bool prev_pred_taken, bool bias_bit, bool use_conf_ctr, int8_t conf_ctr, unsigned conf_bits, int hitBank, int altBank, int64_t phist, int init_lsum) argument 288 scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, BranchInfo * tage_bi, Addr corrTarget) argument 317 condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken, BranchInfo *bi, Addr corrTarget, bool b, int hitBank, int altBank, int64_t phist) argument [all...] |
H A D | multiperspective_perceptron_tage_64KB.cc | 73 MPP_StatisticalCorrector_64KB::getBiasLSUM(Addr branch_pc, argument 76 int8_t ctr = bias[getIndBias(branch_pc, bi, false /* unused */)]; 78 ctr = biasSK[getIndBiasSK(branch_pc, bi)]; 83 MPP_StatisticalCorrector_64KB::gPredictions(ThreadID tid, Addr branch_pc, argument 87 unsigned int pc = branch_pc; 92 lsum += 2.02 * gPredict(branch_pc, sh->getLocalHistory(1, branch_pc), 94 if (sh->getLocalHistory(1, branch_pc) == 2047) lsum += 4; 95 if (sh->getLocalHistory(1, branch_pc) == 0) lsum -= 4; 98 lsum += gPredict(branch_pc, s 136 scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, StatisticalCorrector::BranchInfo *bi, Addr corrTarget) argument [all...] |
H A D | multiperspective_perceptron_tage_8KB.cc | 72 MPP_StatisticalCorrector_8KB::getBiasLSUM(Addr branch_pc, argument 75 int8_t ctr = bias[getIndBias(branch_pc, bi, false /* unused */)]; 77 ctr = biasSK[getIndBiasSK(branch_pc, bi)]; 82 MPP_StatisticalCorrector_8KB::gPredictions(ThreadID tid, Addr branch_pc, argument 86 unsigned int pc = branch_pc; 91 lsum += 2 * gPredict(branch_pc, sh->getLocalHistory(1, branch_pc), 93 if (sh->getLocalHistory(1, branch_pc) == 2047) lsum += 4; 94 if (sh->getLocalHistory(1, branch_pc) == 0) lsum -= 4; 96 lsum += gPredict(branch_pc, s 121 scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, StatisticalCorrector::BranchInfo *bi, Addr corrTarget) argument [all...] |
H A D | ltage.cc | 63 LTAGE::predict(ThreadID tid, Addr branch_pc, bool cond_branch, void* &b) argument 68 bool pred_taken = tage->tagePredict(tid, branch_pc, cond_branch, 71 pred_taken = loopPredictor->loopPredict(tid, branch_pc, cond_branch, 80 branch_pc, pred_taken, bi->lpBranchInfo->loopPred, 94 LTAGE::update(ThreadID tid, Addr branch_pc, bool taken, void* bp_history, argument 119 branch_pc, taken); 124 loopPredictor->condBranchUpdate(tid, branch_pc, taken, 127 tage->condBranchUpdate(tid, branch_pc, taken, bi->tageBranchInfo, 131 tage->updateHistories(tid, branch_pc, taken, bi->tageBranchInfo, false,
|
H A D | multiperspective_perceptron_tage_8KB.hh | 62 int gPredictions(ThreadID tid, Addr branch_pc, 65 void getBiasLSUM(Addr branch_pc, 69 void scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken,
|
H A D | tage_sc_l_8KB.hh | 65 Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) override; 93 unsigned getIndBiasBank( Addr branch_pc, BranchInfo* bi, int hitBank, 96 int gPredictions( ThreadID tid, Addr branch_pc, 102 Addr branch_pc, const StaticInstPtr &inst, bool taken,
|
H A D | statistical_corrector.hh | 102 int ordinal, Addr branch_pc, bool taken, Addr extraXor = 0) 107 unsigned entry = getEntry(branch_pc, idx); 218 ThreadID tid, Addr branch_pc, bool cond_branch, BranchInfo* bi, 223 virtual unsigned getIndBias(Addr branch_pc, BranchInfo* bi, bool b) const; 225 virtual unsigned getIndBiasSK(Addr branch_pc, BranchInfo* bi) const; 227 virtual unsigned getIndBiasBank( Addr branch_pc, BranchInfo* bi, 230 virtual unsigned getIndUpd(Addr branch_pc) const; 231 unsigned getIndUpds(Addr branch_pc) const; 233 virtual int gPredictions(ThreadID tid, Addr branch_pc, BranchInfo* bi, 236 int64_t gIndex(Addr branch_pc, int64_ 101 updateLocalHistory( int ordinal, Addr branch_pc, bool taken, Addr extraXor = 0) argument [all...] |
H A D | tage_sc_l_64KB.hh | 66 Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) override; 113 unsigned getIndBiasBank(Addr branch_pc, BranchInfo* bi, int hitBank, 116 int gPredictions(ThreadID tid, Addr branch_pc, BranchInfo* bi, 121 void scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken,
|
H A D | multiperspective_perceptron_tage.cc | 53 MPP_TAGE::handleTAGEUpdate(Addr branch_pc, bool taken, argument 65 baseUpdate(branch_pc, taken, bi); 78 baseUpdate(branch_pc, taken, bi); 169 MPP_TAGE::getUseAltIdx(TAGEBase::BranchInfo* bi, Addr branch_pc) argument 171 uint32_t hpc = ((uint32_t) branch_pc); 188 ThreadID tid, Addr branch_pc, bool taken, TAGEBase::BranchInfo* b, 203 updatePathAndGlobalHistory(tHist, brtype, taken, branch_pc, target); 208 ThreadHistory& tHist, int brtype, bool taken, Addr branch_pc, Addr target) 211 int tmp = (branch_pc << 1) + taken; 212 int path = branch_pc; 187 updateHistories( ThreadID tid, Addr branch_pc, bool taken, TAGEBase::BranchInfo* b, bool speculative, const StaticInstPtr &inst, Addr target) argument 207 updatePathAndGlobalHistory( ThreadHistory& tHist, int brtype, bool taken, Addr branch_pc, Addr target) argument 298 getIndBias(Addr branch_pc, StatisticalCorrector::BranchInfo* bi, bool bias) const argument 306 getIndBiasSK(Addr branch_pc, StatisticalCorrector::BranchInfo* bi) const argument 314 getIndBiasBank(Addr branch_pc, StatisticalCorrector::BranchInfo* bi, int hitBank, int altBank) const argument 333 gUpdate(Addr branch_pc, bool taken, int64_t hist, std::vector<int> & length, std::vector<int8_t> * tab, int nbr, int logs, std::vector<int8_t> & w, StatisticalCorrector::BranchInfo* bi) argument 348 scPredict(ThreadID tid, Addr branch_pc, bool cond_branch, StatisticalCorrector::BranchInfo* bi, bool prev_pred_taken, bool bias_bit, bool use_conf_ctr, int8_t conf_ctr, unsigned conf_bits, int hitBank, int altBank, int64_t phist, int init_lsum) argument 559 condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken, StatisticalCorrector::BranchInfo *bi, Addr corrTarget, bool bias_bit, int hitBank, int altBank, int64_t phist) argument [all...] |
H A D | multiperspective_perceptron_tage.hh | 66 void handleTAGEUpdate(Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) 75 unsigned getUseAltIdx(TAGEBase::BranchInfo* bi, Addr branch_pc) override; 77 void updateHistories(ThreadID tid, Addr branch_pc, bool taken, 82 bool taken, Addr branch_pc, Addr target); 152 unsigned getIndBias(Addr branch_pc, StatisticalCorrector::BranchInfo* bi, 154 unsigned getIndBiasSK(Addr branch_pc, StatisticalCorrector::BranchInfo* bi) 156 unsigned getIndBiasBank(Addr branch_pc, 159 unsigned getIndUpd(Addr branch_pc) const override; 162 bool scPredict(ThreadID tid, Addr branch_pc, bool cond_branch, 168 void condBranchUpdate(ThreadID tid, Addr branch_pc, boo [all...] |
H A D | multiperspective_perceptron_tage_64KB.hh | 65 int gPredictions(ThreadID tid, Addr branch_pc, 68 void getBiasLSUM(Addr branch_pc, 72 void scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken,
|
H A D | tage_sc_l.cc | 171 TAGE_SC_L_TAGE::getUseAltIdx(TAGEBase::BranchInfo* bi, Addr branch_pc) argument 231 ThreadHistory& tHist, int brtype, bool taken, Addr branch_pc, Addr target) 234 int tmp = ((branch_pc ^ (branch_pc >> instShiftAmt))) ^ taken; 235 int path = branch_pc ^ (branch_pc >> instShiftAmt) 236 ^ (branch_pc >> (instShiftAmt+2)); 266 ThreadID tid, Addr branch_pc, bool taken, TAGEBase::BranchInfo* b, 281 updatePathAndGlobalHistory(tHist, brtype, taken, branch_pc, target); 284 "path Hist: %x; pointer:%d\n", branch_pc, take 230 updatePathAndGlobalHistory( ThreadHistory& tHist, int brtype, bool taken, Addr branch_pc, Addr target) argument 265 updateHistories( ThreadID tid, Addr branch_pc, bool taken, TAGEBase::BranchInfo* b, bool speculative, const StaticInstPtr &inst, Addr target) argument 365 predict(ThreadID tid, Addr branch_pc, bool cond_branch, void* &b) argument 413 update(ThreadID tid, Addr branch_pc, bool taken, void *bp_history, bool squashed, const StaticInstPtr & inst, Addr corrTarget) argument [all...] |
H A D | tage_sc_l.hh | 95 ThreadID tid, Addr branch_pc, TAGEBase::BranchInfo* bi) override; 97 unsigned getUseAltIdx(TAGEBase::BranchInfo* bi, Addr branch_pc) override; 100 ThreadID tid, Addr branch_pc, bool taken, TAGEBase::BranchInfo* b, 116 Addr branch_pc, Addr target); 126 Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) override = 0; 130 bool getBimodePred(Addr branch_pc, 155 ThreadID tid, Addr branch_pc, bool cond_branch, void* &b) override;
|
H A D | tage_sc_l_8KB.cc | 67 TAGE_SC_L_8KB_StatisticalCorrector::getIndBiasBank(Addr branch_pc, argument 76 ThreadID tid, Addr branch_pc, BranchInfo* bi, int & lsum, int64_t phist) 80 branch_pc, sh->globalHist, gm, ggehl, gnb, logGnb, wg); 83 branch_pc, sh->bwHist, bwm, bwgehl, bwnb, logBwnb, wbw); 87 branch_pc, sh->getLocalHistory(1, branch_pc), lm, 91 branch_pc, sh->imliCount, im, igehl, inb, logInb, wi); 93 int thres = (updateThreshold>>3)+pUpdateThreshold[getIndUpd(branch_pc)]; 104 TAGE_SC_L_8KB_StatisticalCorrector::scHistoryUpdate(Addr branch_pc, argument 119 StatisticalCorrector::scHistoryUpdate(branch_pc, ins 75 gPredictions( ThreadID tid, Addr branch_pc, BranchInfo* bi, int & lsum, int64_t phist) argument 258 handleTAGEUpdate(Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) argument [all...] |
H A D | tage_base.hh | 271 * @param branch_pc The unshifted branch PC. 276 void update(ThreadID tid, Addr branch_pc, bool taken, BranchInfo* bi); 284 * @param branch_pc The unshifted branch PC. 291 ThreadID tid, Addr branch_pc, bool taken, BranchInfo* b, 314 * @param branch_pc The unshifted branch PC. 325 ThreadID tid, Addr branch_pc, bool taken, BranchInfo* bi, 332 * @param branch_pc The unshifted branch PC. 337 ThreadID tid, Addr branch_pc, bool cond_branch, BranchInfo* bi); 363 ThreadID tid, Addr branch_pc, BranchInfo* bi); 369 virtual unsigned getUseAltIdx(BranchInfo* bi, Addr branch_pc); [all...] |
H A D | ltage.hh | 106 * @param branch_pc The unshifted branch PC. 112 ThreadID tid, Addr branch_pc, bool cond_branch, void* &b) override;
|
H A D | tage.hh | 78 virtual bool predict(ThreadID tid, Addr branch_pc, bool cond_branch,
|
H A D | tage_base.cc | 183 TAGEBase::btbUpdate(ThreadID tid, Addr branch_pc, BranchInfo* &bi) argument 187 DPRINTF(Tage, "BTB miss resets prediction: %lx\n", branch_pc); 335 TAGEBase::calculateIndicesAndTags(ThreadID tid, Addr branch_pc, argument 340 tableIndices[i] = gindex(tid, branch_pc, i); 342 tableTags[i] = gtag(tid, branch_pc, i); 348 TAGEBase::getUseAltIdx(BranchInfo* bi, Addr branch_pc) argument 355 TAGEBase::tagePredict(ThreadID tid, Addr branch_pc, argument 358 Addr pc = branch_pc; 406 if ((useAltPredForNewlyAllocated[getUseAltIdx(bi, branch_pc)] < 0) 425 branch_pc, pred_take 509 condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken, BranchInfo* bi, int nrand, Addr corrTarget, bool pred, bool preAdjustAlloc) argument 550 handleTAGEUpdate(Addr branch_pc, bool taken, BranchInfo* bi) argument 583 updateHistories(ThreadID tid, Addr branch_pc, bool taken, BranchInfo* bi, bool speculative, const StaticInstPtr &inst, Addr target) argument [all...] |
H A D | loop_predictor.hh | 197 * @param branch_pc The unshifted branch PC. 204 void condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken, 211 * @param branch_pc The unshifted branch PC. 221 ThreadID tid, Addr branch_pc, bool cond_branch,
|
H A D | loop_predictor.cc | 272 LoopPredictor::loopPredict(ThreadID tid, Addr branch_pc, bool cond_branch, argument 278 bi->loopPred = getLoop(branch_pc, bi, useSpeculation, instShiftAmt); 326 LoopPredictor::condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken, argument 335 bi->loopPred = getLoop(branch_pc, bi, false, instShiftAmt); 346 loopUpdate(branch_pc, taken, bi, tage_pred);
|
H A D | multiperspective_perceptron.cc | 810 MultiperspectivePerceptron::btbUpdate(ThreadID tid, Addr branch_pc, argument
|