73a74,75
> virtual void regStats() override;
>
112a115,123
> // provider type
> enum {
> BIMODAL_ONLY = 0,
> TAGE_LONGEST_MATCH,
> BIMODAL_ALT_MATCH,
> TAGE_ALT_MATCH,
> LAST_TAGE_PROVIDER_TYPE = TAGE_ALT_MATCH
> };
>
143a155,157
> // for stats purposes
> unsigned provider;
>
151c165,166
< pseudoNewAlloc(false), branchPC(0)
---
> pseudoNewAlloc(false), branchPC(0),
> provider(-1)
322a338,345
> /**
> * Update the stats
> * @param taken Actual branch outcome
> * @param bi Pointer to information on the prediction
> * recorded at prediction time.
> */
> virtual void updateStats(bool taken, TageBranchInfo* bi);
>
371a395,409
>
> // stats
> Stats::Scalar tageLongestMatchProviderCorrect;
> Stats::Scalar tageAltMatchProviderCorrect;
> Stats::Scalar bimodalAltMatchProviderCorrect;
> Stats::Scalar tageBimodalProviderCorrect;
> Stats::Scalar tageLongestMatchProviderWrong;
> Stats::Scalar tageAltMatchProviderWrong;
> Stats::Scalar bimodalAltMatchProviderWrong;
> Stats::Scalar tageBimodalProviderWrong;
> Stats::Scalar tageAltMatchProviderWouldHaveHit;
> Stats::Scalar tageLongestMatchProviderWouldHaveHit;
>
> Stats::Vector tageLongestMatchProvider;
> Stats::Vector tageAltMatchProvider;