[PATCH] D85366: [RISCV] Disparage CSR instructions
Evandro Menezes via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 11 14:48:31 PDT 2020
evandro added a comment.
`hasSideEffects` may imply `isNotDuplicable`, especially when rematerializing, but the latter prevents duplication more extensively in the middle end (e.g., tail end duplication).
Architecting reading the cycle counter to be like a GPR is not a given, since it's usually a side band register away from the register file. Therefore, such instructions follow unusual paths in the architecture, when methinks that `hasNoSchedulingInfo` makes sense.
Moreover, though the CSR instructions may be used as RO, they are defined as RMW instructions. But this probably just backs up `hasSideEffects`.
And not all code piped through the LLVM IR comes from `CodeGen`. Thus, it's important to describe the instructions as faithfully as possible to the ISA, regardless of how they are used in the compiler.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D85366/new/
https://reviews.llvm.org/D85366
More information about the llvm-commits
mailing list