aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAndrea Di Biagio <andrea.dibiagio@sony.com>2021-03-23 14:47:01 +0000
committerAndrea Di Biagio <andrea.dibiagio@sony.com>2021-03-23 14:47:23 +0000
commitf5bdc88e4d2b096414d0ac1781840a6c73e9f3a3 (patch)
tree1590cd9efe74cac5bbcf82f8f42b9cd416c7a9d1 /flang/lib/Frontend/CompilerInvocation.cpp
parent514bc01ca3b9f97945dd49aa40e01922fed0e41d (diff)
downloadllvm-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