Re:An ex-ARM engineer critiques RISC-V
by ithkuil on Sunday November 01, 2020 @04:20PM
(#24962597)
You have to preserve architectural registers only when some other instruction actually depends on them. When you detect a dependency you lazily compute their content (causing a stall)
[ Parent
| on HN ]
Re:An ex-ARM engineer critiques RISC-V
by brucehoult on Sunday November 01, 2020 @05:26PM
(#24963090)
The dependency could be arbitrarily many millions of instructions away.
The only way to know there isn't a dependency is if that register gets clobbered by something else very soon afterwards.
But this whole topic of "checking for signed overflow is expensive" is overblown. It's simply not that important an operation, especially in the context of those languages that do it a lot also doing a lot of memory references, which are far more expensive.
Adding arbitrary completely unknown integers is pretty rare. If you know both numbers are greater than zero then a single compare-and-branch is all you need. If one of the numbers is a constant then a single compare-and-branch is all you need.
That sounds like an amazingly bad idea, because you would instead have to retain the two source registers until you can prove that you don't need the two output registers anymore, which can be arbitrarily far in the future.