61#ifndef __CPU_PRED_LTAGE_HH__
62#define __CPU_PRED_LTAGE_HH__
70#include "params/LTAGE.hh"
86 void * &bp_history,
bool squashed,
89 bool uncond,
void * &bp_history)
override;
108 Addr pc,
bool conditional)
131 ThreadID tid,
Addr branch_pc,
bool cond_branch,
void* &
b)
override;
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
void update(ThreadID tid, Addr pc, bool taken, void *&bp_history, bool squashed, const StaticInstPtr &inst, Addr target) override
Updates the BP with taken/not taken information.
void branchPlaceholder(ThreadID tid, Addr pc, bool uncond, void *&bp_history) override
Special function for the decoupled front-end.
LTAGE(const LTAGEParams ¶ms)
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
bool predict(ThreadID tid, Addr branch_pc, bool cond_branch, void *&b) override
Get a branch prediction from LTAGE.
@ LAST_LTAGE_PROVIDER_TYPE
LoopPredictor * loopPredictor
The loop predictor object.
void squash(ThreadID tid, void *&bp_history) override
@ LAST_TAGE_PROVIDER_TYPE
TAGE(const TAGEParams ¶ms)
const Params & params() const
Copyright (c) 2024 Arm Limited All rights reserved.
int16_t ThreadID
Thread index/ID type.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
RefCountingPtr< StaticInst > StaticInstPtr
LoopPredictor::BranchInfo * lpBranchInfo
virtual ~LTageBranchInfo()
LTageBranchInfo(TAGEBase &tage, LoopPredictor &lp, Addr pc, bool conditional)
TageBranchInfo(TAGEBase &tage, Addr pc, bool conditional)