Searched refs:taken (Results 1 - 25 of 37) sorted by relevance

12

/gem5/src/cpu/pred/
H A D2bit_local.cc76 bool taken; local
87 taken = getPrediction(counter_val);
89 return taken;
93 LocalBP::update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history, argument
110 if (taken) {
111 DPRINTF(Fetch, "Branch updated as taken.\n");
114 DPRINTF(Fetch, "Branch updated as not taken.\n");
H A Dmultiperspective_perceptron_tage.cc53 MPP_TAGE::handleTAGEUpdate(Addr branch_pc, bool taken, argument
58 if (bi->longestMatchPred != taken) {
61 ctrUpdate(gtable[bi->altBank][bi->altBankIndex].ctr, taken,
65 baseUpdate(branch_pc, taken, bi);
70 ctrUpdate(gtable[bi->hitBank][bi->hitBankIndex].ctr, taken,
78 baseUpdate(branch_pc, taken, bi);
82 (bi->longestMatchPred == taken) &&
89 MPP_TAGE::handleAllocAndUReset(bool alloc, bool taken, argument
111 gtable[i][bi->tableIndices[i]].ctr = taken ? 0 : -1;
178 MPP_TAGE::adjustAlloc(bool & alloc, bool taken, boo argument
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
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
447 updatePartial(ThreadID tid, MPPTAGEBranchInfo &bi, bool taken) argument
471 updateHistories(ThreadID tid, MPPTAGEBranchInfo &bi, bool taken) 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
600 update(ThreadID tid, Addr instPC, bool taken, void *bp_history, bool squashed, const StaticInstPtr & inst, Addr corrTarget) argument
[all...]
H A Dtage_sc_l_64KB.cc142 const StaticInstPtr &inst, bool taken, BranchInfo* tage_bi,
155 + taken;
156 sh->updateLocalHistory(2, branch_pc, taken, branch_pc & 15);
157 sh->updateLocalHistory(3, branch_pc, taken);
160 StatisticalCorrector::scHistoryUpdate(branch_pc, inst, taken, tage_bi,
166 bool taken, BranchInfo* bi, int64_t phist)
171 gUpdate((pc << 1) + bi->predBeforeSC, taken, sh->bwHist, bwm,
174 gUpdate(pc, taken, phist, pm,
177 gUpdate(pc, taken, sh->getLocalHistory(1, pc), lm,
180 gUpdate(pc, taken, s
141 scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, BranchInfo* tage_bi, Addr corrTarget) argument
165 gUpdates(ThreadID tid, Addr pc, bool taken, BranchInfo* bi, int64_t phist) argument
216 handleAllocAndUReset( bool alloc, bool taken, TAGEBase::BranchInfo* bi, int nrand) argument
264 handleTAGEUpdate(Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) argument
[all...]
H A Dltage.cc78 DPRINTF(LTage, "Predict for %lx: taken?:%d, loopTaken?:%d, "
94 LTAGE::update(ThreadID tid, Addr branch_pc, bool taken, void* bp_history, argument
107 tage->squash(tid, taken, bi->tageBranchInfo, corrTarget);
118 DPRINTF(LTage, "Updating tables for branch:%lx; taken?:%d\n",
119 branch_pc, taken);
120 tage->updateStats(taken, bi->tageBranchInfo);
122 loopPredictor->updateStats(taken, bi->lpBranchInfo);
124 loopPredictor->condBranchUpdate(tid, branch_pc, taken,
127 tage->condBranchUpdate(tid, branch_pc, taken, bi->tageBranchInfo,
131 tage->updateHistories(tid, branch_pc, taken, b
[all...]
H A Dtage_sc_l_8KB.hh62 bool alloc, bool taken, TAGEBase::BranchInfo* bi, int nrand) override;
65 Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) override;
102 Addr branch_pc, const StaticInstPtr &inst, bool taken,
105 void gUpdates(ThreadID tid, Addr pc, bool taken, BranchInfo* bi,
H A Dtage_sc_l_8KB.cc105 const StaticInstPtr &inst, bool taken, BranchInfo *tage_bi,
116 sh->globalHist = (sh->globalHist << 1) + taken;
119 StatisticalCorrector::scHistoryUpdate(branch_pc, inst, taken, tage_bi,
124 TAGE_SC_L_8KB_StatisticalCorrector::gUpdates(ThreadID tid, Addr pc, bool taken, argument
128 gUpdate(pc, taken, sh->globalHist, gm, ggehl, gnb, logGnb, wg, bi);
129 gUpdate(pc, taken, sh->bwHist, bwm, bwgehl, bwnb, logBwnb, wbw, bi);
130 gUpdate(pc, taken, sh->getLocalHistory(1, pc), lm, lgehl, lnb, logLnb, wl,
132 gUpdate(pc, taken, sh->imliCount, im, igehl, inb, logInb, wi, bi);
190 bool alloc, bool taken, TAGEBase::BranchInfo* bi, int nrand)
214 gtable[i][bi->tableIndices[i]].ctr = taken
104 scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, BranchInfo *tage_bi, Addr corrTarget) argument
189 handleAllocAndUReset( bool alloc, bool taken, TAGEBase::BranchInfo* bi, int nrand) argument
258 handleTAGEUpdate(Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) argument
[all...]
H A Dbi_mode.cc68 * everything is set to taken. I.e., its choice predictor
69 * chooses the taken array and the taken array predicts taken.
97 * register and a branch's PC is used to index into both the taken
98 * and not-taken predictors, which both present a prediction. The
154 BiModeBP::update(ThreadID tid, Addr branchAddr, bool taken, void *bpHistory,
164 globalHistoryReg[tid] = (history->globalHistoryReg << 1) | taken;
178 // if the taken array's prediction was used, update it
179 if (taken) {
[all...]
H A Dtage.cc56 TAGE::update(ThreadID tid, Addr branch_pc, bool taken, void* bp_history, argument
69 tage->squash(tid, taken, tage_bi, corrTarget);
75 DPRINTF(Tage, "Updating tables for branch:%lx; taken?:%d\n",
76 branch_pc, taken);
77 tage->updateStats(taken, bi->tageBranchInfo);
78 tage->condBranchUpdate(tid, branch_pc, taken, tage_bi, nrand,
83 tage->updateHistories(tid, branch_pc, taken, tage_bi, false, inst,
H A Dbi_mode.hh44 * branch predictor that has three seprate history arrays: a taken array, a
45 * not-taken array, and a choice array. The taken/not-taken arrays are indexed
47 * the PC only. Because the taken/not-taken arrays use the same index, they must
52 * pattern. By separating the predictors into taken/not-taken arrays, and using
64 void update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history,
68 void updateGlobalHistReg(ThreadID tid, bool taken);
[all...]
H A Dmultiperspective_perceptron_tage_8KB.cc105 MPP_StatisticalCorrector_8KB::gUpdates(ThreadID tid, Addr pc, bool taken, argument
110 gUpdate((pc << 1) + bi->predBeforeSC, taken, sh->globalHist << 11,
113 gUpdate(pc, taken, sh->getLocalHistory(1, pc),
116 gUpdate(pc, taken, sh->getHistoryStackEntry(),
122 const StaticInstPtr &inst, bool taken,
133 sh->globalHist = (sh->globalHist << 1) + taken;
135 sh->updateHistoryStack(corrTarget, taken, inst->isCall(),
138 StatisticalCorrector::scHistoryUpdate(branch_pc, inst, taken, bi,
121 scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, StatisticalCorrector::BranchInfo *bi, Addr corrTarget) argument
H A Dmultiperspective_perceptron_tage_8KB.hh67 void gUpdates(ThreadID tid, Addr pc, bool taken,
69 void scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken,
H A Dtage_sc_l_64KB.hh63 bool alloc, bool taken, TAGEBase::BranchInfo* bi, int nrand) override;
66 Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) override;
121 void scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken,
124 void gUpdates(ThreadID tid, Addr pc, bool taken, BranchInfo* bi,
H A Dmultiperspective_perceptron_tage.hh66 void handleTAGEUpdate(Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi)
68 void handleAllocAndUReset(bool alloc, bool taken, TAGEBase::BranchInfo* bi,
76 void adjustAlloc(bool & alloc, bool taken, bool pred_taken) override;
77 void updateHistories(ThreadID tid, Addr branch_pc, bool taken,
82 bool taken, Addr branch_pc, Addr target);
124 void updateHistoryStack(Addr target, bool taken, bool is_call, argument
130 (truncated_target >> 5) ^ taken);
168 void condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken,
177 Addr branch_pc, bool taken, int64_t hist, std::vector<int> & length,
217 void updatePartial(ThreadID tid, MPPTAGEBranchInfo &bi, bool taken);
[all...]
H A Dmultiperspective_perceptron_tage_64KB.cc114 MPP_StatisticalCorrector_64KB::gUpdates(ThreadID tid, Addr pc, bool taken, argument
119 gUpdate((pc << 1) + bi->predBeforeSC, taken, sh->globalHist << 11,
122 gUpdate(pc, taken, sh->getLocalHistory(1, pc),
125 gUpdate(pc, taken, sh->getLocalHistory(2, pc),
128 gUpdate(pc, taken, sh->getLocalHistory(3, pc) << 11,
131 gUpdate(pc, taken, sh->getHistoryStackEntry(),
137 const StaticInstPtr &inst, bool taken,
148 sh->globalHist = (sh->globalHist << 1) + taken;
149 sh->updateLocalHistory(2, branch_pc, taken,
151 sh->updateLocalHistory(3, branch_pc, taken);
136 scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, StatisticalCorrector::BranchInfo *bi, Addr corrTarget) argument
[all...]
H A Dtage_sc_l.cc231 ThreadHistory& tHist, int brtype, bool taken, Addr branch_pc, Addr target)
234 int tmp = ((branch_pc ^ (branch_pc >> instShiftAmt))) ^ taken;
237 if ((brtype == 3) & taken) {
266 ThreadID tid, Addr branch_pc, bool taken, TAGEBase::BranchInfo* b,
281 updatePathAndGlobalHistory(tHist, brtype, taken, branch_pc, target);
283 DPRINTF(TageSCL, "Updating global histories with branch:%lx; taken?:%d, "
284 "path Hist: %x; pointer:%d\n", branch_pc, taken, tHist.pathHist,
289 TAGE_SC_L_TAGE::squash(ThreadID tid, bool taken, TAGEBase::BranchInfo *bi, argument
296 TAGE_SC_L_TAGE::adjustAlloc(bool & alloc, bool taken, bool pred_taken) argument
299 if ((taken
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
413 update(ThreadID tid, Addr branch_pc, bool taken, void *bp_history, bool squashed, const StaticInstPtr & inst, Addr corrTarget) argument
[all...]
H A Dstatistical_corrector.cc202 StatisticalCorrector::gUpdate(Addr branch_pc, bool taken, int64_t hist, argument
212 ctrUpdate(tab[i][index], taken, scCountersWidth);
217 ctrUpdate(w[getIndUpds(branch_pc)], ((percsum >= 0) == taken),
289 const StaticInstPtr &inst, bool taken, BranchInfo * tage_bi,
300 if (!taken) {
311 (taken & (corrTarget < branch_pc));
312 scHistory->updateLocalHistory(1, branch_pc, taken);
318 bool taken, BranchInfo *bi, Addr corrTarget, bool b, int hitBank,
328 ctrUpdate(secondH, (bi->predBeforeSC == taken),
336 ctrUpdate(firstH, (bi->predBeforeSC == taken),
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
376 updateStats(bool taken, BranchInfo *bi) argument
[all...]
H A Dtage_sc_l.hh100 ThreadID tid, Addr branch_pc, bool taken, TAGEBase::BranchInfo* b,
111 void squash(ThreadID tid, bool taken, TAGEBase::BranchInfo *bi,
115 ThreadHistory & tHist, int brtype, bool taken,
118 void adjustAlloc(bool & alloc, bool taken, bool pred_taken) override;
120 virtual void handleAllocAndUReset(bool alloc, bool taken,
126 Addr branch_pc, bool taken, TAGEBase::BranchInfo* bi) override = 0;
159 void update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history,
H A Dloop_predictor.cc157 LoopPredictor::specLoopUpdate(bool taken, BranchInfo* bi) argument
161 if (taken != ltable[index].dir) {
177 LoopPredictor::loopUpdate(Addr pc, bool taken, BranchInfo* bi, bool tage_pred) argument
183 if (taken != bi->loopPred) {
209 if (taken != (useDirectionBit ? ltable[idx].dir : true)) {
217 ltable[idx].dir = taken; // ignored if no useDirectionBit
241 } else if (useDirectionBit ? (bi->predTaken != taken) : taken) {
243 //try to allocate an entry on taken branch
252 ltable[idx].dir = !taken; // ignore
316 updateStats(bool taken, BranchInfo* bi) argument
326 condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken, bool tage_pred, BranchInfo* bi, unsigned instShiftAmt) argument
[all...]
H A Dtage_base.hh223 * @param taken Actual branch outcome.
227 static void ctrUpdate(T & ctr, bool taken, int nbits);
250 * @param taken The actual branch outcome.
254 void baseUpdate(Addr pc, bool taken, BranchInfo* bi);
272 * @param taken Actual branch outcome.
276 void update(ThreadID tid, Addr branch_pc, bool taken, BranchInfo* bi);
285 * @param taken (Predicted) branch direction.
291 ThreadID tid, Addr branch_pc, bool taken, BranchInfo* b,
302 * @param taken The correct branch outcome.
310 ThreadID tid, bool taken, BranchInf
[all...]
H A Dstatistical_corrector.hh56 inline void ctrUpdate(T & ctr, bool taken, int nbits) { argument
59 if (taken) {
102 int ordinal, Addr branch_pc, bool taken, Addr extraXor = 0)
108 int64_t hist = (localHistories[idx][entry] << 1) + taken;
246 Addr branch_pc, bool taken, int64_t hist, std::vector<int> & length,
256 Addr branch_pc, const StaticInstPtr &inst , bool taken,
259 virtual void gUpdates( ThreadID tid, Addr pc, bool taken, BranchInfo* bi,
264 void updateStats(bool taken, BranchInfo *bi);
266 virtual void condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken,
101 updateLocalHistory( int ordinal, Addr branch_pc, bool taken, Addr extraXor = 0) argument
H A Dtage_base.cc256 TAGEBase::ctrUpdate(T & ctr, bool taken, int nbits) argument
259 if (taken) {
269 template void TAGEBase::ctrUpdate(int8_t & ctr, bool taken, int nbits);
270 template void TAGEBase::ctrUpdate(int & ctr, bool taken, int nbits);
297 TAGEBase::baseUpdate(Addr pc, bool taken, BranchInfo* bi) argument
301 if (taken) {
424 DPRINTF(Tage, "Predict for %lx: taken?:%d, tagePred:%d, altPred:%d\n",
433 TAGEBase::adjustAlloc(bool & alloc, bool taken, bool pred_taken) argument
439 TAGEBase::handleAllocAndUReset(bool alloc, bool taken, BranchInfo* bi, argument
473 gtable[i][bi->tableIndices[i]].ctr = (taken)
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
624 squash(ThreadID tid, bool taken, TAGEBase::BranchInfo *bi, Addr target) argument
657 updateStats(bool taken, BranchInfo* bi) argument
[all...]
H A Dmultiperspective_perceptron_tage_64KB.hh70 void gUpdates(ThreadID tid, Addr pc, bool taken,
72 void scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken,
H A Dloop_predictor.hh179 * @param taken The actual branch outcome.
189 * @param taken The predicted branch outcome.
193 void specLoopUpdate(bool taken, BranchInfo* bi);
198 * @param taken Actual branch outcome.
204 void condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken,
218 * @result the prediction, true if taken
226 * @param taken Actual branch outcome
230 void updateStats(bool taken, BranchInfo* bi);
H A Dltage.hh70 void update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history,
H A Dtage.hh89 void update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history,

Completed in 34 milliseconds

12