Retirement refactor#548
Conversation
|
There seems to be loss in benchmark IPC for some reason. Needs investigation |
|
I see, FRAT is still called under one condition form main Retirement. I will probably re-introduce one Forwarder, maybe there is some better solution? |
Maybe try using |
Great! It also fixed problem with call to EDIT: IPC is good |
|
oops, there is a problem with generating graph and condtion :(. [There is also graph syntax error on master again] |
The issue is in |
|
The Fmax is still pretty bad, but I imagine that #545 can still fix it? |
|
Fmax issue is unrelated to this PR, it depends only on critical path from JBUnit to ExcepionCauseRegister. |
CONTROVERSY ALERT ❗I started working on speculation and saw a pattern in Retirement. I refactored it as FSM that calls python methods!
This way we can eliminate:
I think that logic is also way easier to understand with clear separation of retire/flush and state of what the retirement currently is doing.
Unfortunately the limitation that methods can be called only once from transaction, breaks fun here. It would look even nicer without it see commit. AndMethodBranchercannot be used in this case.For me it looks great. What do you think about it?
Also it would be nice to review/merege it quickly, as my further work on speculation depends on this (it would be ugly and bug-prone otherwise)