gem5 v24.0.0.0
|
Public Member Functions | |
PredictorHistory (ThreadID _tid, InstSeqNum sn, Addr _pc, const StaticInstPtr &inst) | |
Makes a predictor history struct that contains any information needed to update the predictor, BTB, and RAS. | |
~PredictorHistory () | |
PredictorHistory (const PredictorHistory &)=delete | |
PredictorHistory & | operator= (const PredictorHistory &)=delete |
bool | operator== (const PredictorHistory &entry) const |
Public Attributes | |
const InstSeqNum | seqNum |
The sequence number for the predictor history entry. | |
const ThreadID | tid |
The thread id. | |
const Addr | pc |
The PC associated with the sequence number. | |
const StaticInstPtr | inst |
The branch instrction. | |
const BranchType | type |
The type of the branch. | |
const bool | call |
Whether or not the instruction was a call. | |
const bool | uncond |
Was unconditional control. | |
bool | predTaken |
Whether or not it was predicted taken. | |
bool | actuallyTaken |
To record the actual outcome of the branch. | |
bool | condPred |
The prediction of the conditional predictor. | |
bool | btbHit |
Was BTB hit at prediction time. | |
TargetProvider | targetProvider |
Which component provided the target. | |
bool | resteered |
Resteered. | |
bool | mispredict |
The branch was corrected hence was mispredicted. | |
std::unique_ptr< PCStateBase > | target |
The predicted target. | |
void * | bpHistory = nullptr |
Pointer to the history objects passed back from the branch predictor subcomponents. | |
void * | indirectHistory = nullptr |
void * | rasHistory = nullptr |
Definition at line 248 of file bpred_unit.hh.
|
inline |
Makes a predictor history struct that contains any information needed to update the predictor, BTB, and RAS.
Definition at line 254 of file bpred_unit.hh.
|
inline |
Definition at line 266 of file bpred_unit.hh.
References bpHistory, indirectHistory, and rasHistory.
|
delete |
|
delete |
|
inline |
Definition at line 277 of file bpred_unit.hh.
References seqNum.
bool gem5::branch_prediction::BPredUnit::PredictorHistory::actuallyTaken |
To record the actual outcome of the branch.
Definition at line 307 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), gem5::branch_prediction::BPredUnit::predict(), and gem5::branch_prediction::BPredUnit::squash().
void* gem5::branch_prediction::BPredUnit::PredictorHistory::bpHistory = nullptr |
Pointer to the history objects passed back from the branch predictor subcomponents.
It is used to update or restore state. Respectively for conditional, indirect and RAS.
Definition at line 333 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), gem5::branch_prediction::BPredUnit::predict(), gem5::branch_prediction::BPredUnit::squash(), gem5::branch_prediction::BPredUnit::squashHistory(), and ~PredictorHistory().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::btbHit |
Was BTB hit at prediction time.
Definition at line 313 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict(), and gem5::branch_prediction::BPredUnit::squash().
const bool gem5::branch_prediction::BPredUnit::PredictorHistory::call |
Whether or not the instruction was a call.
Definition at line 298 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::squash().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::condPred |
The prediction of the conditional predictor.
Definition at line 310 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict(), and gem5::branch_prediction::BPredUnit::squash().
void* gem5::branch_prediction::BPredUnit::PredictorHistory::indirectHistory = nullptr |
Definition at line 335 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), gem5::branch_prediction::BPredUnit::predict(), gem5::branch_prediction::BPredUnit::squash(), gem5::branch_prediction::BPredUnit::squashHistory(), and ~PredictorHistory().
const StaticInstPtr gem5::branch_prediction::BPredUnit::PredictorHistory::inst |
The branch instrction.
Definition at line 292 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), and gem5::branch_prediction::BPredUnit::squash().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::mispredict |
The branch was corrected hence was mispredicted.
Definition at line 322 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), and gem5::branch_prediction::BPredUnit::squash().
const Addr gem5::branch_prediction::BPredUnit::PredictorHistory::pc |
The PC associated with the sequence number.
Definition at line 289 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), gem5::branch_prediction::BPredUnit::predict(), gem5::branch_prediction::BPredUnit::squash(), and gem5::branch_prediction::BPredUnit::squashHistory().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::predTaken |
Whether or not it was predicted taken.
Definition at line 304 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), and gem5::branch_prediction::BPredUnit::predict().
void* gem5::branch_prediction::BPredUnit::PredictorHistory::rasHistory = nullptr |
Definition at line 337 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), gem5::branch_prediction::BPredUnit::predict(), gem5::branch_prediction::BPredUnit::squash(), gem5::branch_prediction::BPredUnit::squashHistory(), and ~PredictorHistory().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::resteered |
Resteered.
Definition at line 319 of file bpred_unit.hh.
const InstSeqNum gem5::branch_prediction::BPredUnit::PredictorHistory::seqNum |
The sequence number for the predictor history entry.
Definition at line 283 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), operator==(), gem5::branch_prediction::BPredUnit::squash(), and gem5::branch_prediction::BPredUnit::squashHistory().
std::unique_ptr<PCStateBase> gem5::branch_prediction::BPredUnit::PredictorHistory::target |
The predicted target.
Definition at line 325 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), gem5::branch_prediction::BPredUnit::predict(), and gem5::branch_prediction::BPredUnit::squash().
TargetProvider gem5::branch_prediction::BPredUnit::PredictorHistory::targetProvider |
Which component provided the target.
Definition at line 316 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict(), and gem5::branch_prediction::BPredUnit::squash().
const ThreadID gem5::branch_prediction::BPredUnit::PredictorHistory::tid |
The thread id.
Definition at line 286 of file bpred_unit.hh.
const BranchType gem5::branch_prediction::BPredUnit::PredictorHistory::type |
The type of the branch.
Definition at line 295 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::commitBranch(), gem5::branch_prediction::BPredUnit::squash(), and gem5::branch_prediction::BPredUnit::squashHistory().
const bool gem5::branch_prediction::BPredUnit::PredictorHistory::uncond |
Was unconditional control.
Definition at line 301 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().