diff options
author | Andrea Di Biagio <andrea.dibiagio@sony.com> | 2021-03-23 14:47:01 +0000 |
---|---|---|
committer | Andrea Di Biagio <andrea.dibiagio@sony.com> | 2021-03-23 14:47:23 +0000 |
commit | f5bdc88e4d2b096414d0ac1781840a6c73e9f3a3 (patch) | |
tree | 1590cd9efe74cac5bbcf82f8f42b9cd416c7a9d1 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 514bc01ca3b9f97945dd49aa40e01922fed0e41d (diff) | |
download | llvm-f5bdc88e4d2b096414d0ac1781840a6c73e9f3a3.zip llvm-f5bdc88e4d2b096414d0ac1781840a6c73e9f3a3.tar.gz llvm-f5bdc88e4d2b096414d0ac1781840a6c73e9f3a3.tar.bz2 |
[MCA] Improved handling of negative read-advance cycles.
Before this patch, register writes were always invalidated by the
RegisterFile at instruction commit stage. So,
the RegisterFile was often losing the knowledge about the `execute
cycle` of writes already committed. While this was not problematic
for non-delayed reads, this was sometimes leading to inaccurate read
latency computations in the presence of negative read-advance cycles.
This patch fixes the issue by changing how the RegisterFile component
internally keeps track of the `execute cycle` information of each
write. On every instruction executed, the RegisterFile gets notified
by the RetireStage, so that it can internally record the execute
cycle of each executed write.
The `execute cycle` information is stored within WriteRef itself, and
it is not invalidated when the write is committed.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions