summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-exegesis/lib/PowerPC/Target.cpp
diff options
context:
space:
mode:
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2018-11-09 12:29:57 +0000
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2018-11-09 12:29:57 +0000
commitdffec12f33cc0387a323e065638486f2e2bc23c4 (patch)
tree2d8d0a051c2c1780a1ed4c10aa45d0facbd9570f /llvm/tools/llvm-exegesis/lib/PowerPC/Target.cpp
parenta1062f4b68c5a750a5b66e56753b10a3a72d7129 (diff)
downloadbcm5719-llvm-dffec12f33cc0387a323e065638486f2e2bc23c4.tar.gz
bcm5719-llvm-dffec12f33cc0387a323e065638486f2e2bc23c4.zip
[llvm-mca] Use a small vector for instructions in the EntryStage.
Use a simple SmallVector to track the lifetime of simulated instructions. An ordered map was not needed because instructions are already picked in program order. It is also much faster if we avoid searching for already retired instructions at the end of every cycle. The new policy only triggers a "garbage collection" when the number of retired instructions becomes significantly big when compared with the total size of the vector. While working on this, I noticed that instructions were correctly retired, but their internal state was not updated (i.e. there was no transition from the EXECUTED state, to the RETIRED state). While this was not a problem for the views, it prevented the EntryStage from correctly garbage collecting already retired instructions. That was a bad oversight, and this patch fixes it. The observed speedup on a debug build of llvm-mca after this patch is ~6%. On a release build of llvm-mca, the observed speedup is ~%15%. llvm-svn: 346487
Diffstat (limited to 'llvm/tools/llvm-exegesis/lib/PowerPC/Target.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud