aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUtils.cpp
diff options
context:
space:
mode:
authorAndrea Di Biagio <andrea.dibiagio@sony.com>2020-02-05 12:51:29 +0000
committerAndrea Di Biagio <andrea.dibiagio@sony.com>2020-02-05 13:50:01 +0000
commitaaaeac616692a6bdb0ee1e7a9977f7fde9dcb364 (patch)
treeb985e85f451c116a19b6f3a98ee9193c0469040b /llvm/lib/Transforms/Utils/LoopUtils.cpp
parent4592bb71954707eda04ee9cc09df84217e5f3bd5 (diff)
downloadllvm-aaaeac616692a6bdb0ee1e7a9977f7fde9dcb364.zip
llvm-aaaeac616692a6bdb0ee1e7a9977f7fde9dcb364.tar.gz
llvm-aaaeac616692a6bdb0ee1e7a9977f7fde9dcb364.tar.bz2
[MCA] Remove verification check on MayLoad and MayStore. NFCI
Field NumMicroOpcodes is currently used by mca to model the number of uOPs dispatched from the uOp-Queue to the out of order backend. From a 'dispatch' point of view, an instruction with zero opcodes is still valid; it simply doesn't consume any dispatch group slots. However, mca doesn't expect an instruction with zero uOPs to consume pipeline resources because it is seen as a contradiction. In practice, it only makes sense if such an instruction is eliminated and never really executed. It may be that mca is being too conservative here. However I believe that mca is right, and we should probably check that inconsistency in CodeGenSchedule.cpp (when we also verify scheduling classes in general). This patch removes the check for MayLoad and MayStore in mca. That check is probably too conservative: we are already checking if a zero-uops instruction consumes any processor resources. Note also that instructions with unmodelled side-effects also tend to set the MayLoad/MayStore flags even if - theoretically speaking - they might not even consume any hw resources in practice. In future we may want to implement different checks (possibly outside of mca) and potentially revisit the logic in mca that verifies instructions. For that reason I have raised PR44797.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions