Auto-repair attributes of RV intrinsics
simoll opened this issue · comments
This is a reminder to...
a) Implement a pass that sets the right LLVM function attributes for RV builtins (RVIntrinsics)
rv_load
should bereadonly
(SIMD codegen crashes for at least one Rodent traversal variant (not all variants are enabled by default) because the DA incorrectly believes the rv_load result shape is varying).- It might help if
rv_any
is annotatedconvergent
(this is a potential workaround to stop LLVM from "hoistingif
s" involvingrv_any
, which may render the BOSCC/cif gadget ineffective before it hits RV).
b) Add this pass at the earliest insertion point when used with Clang.
c) Make sure RV itself only generates correct/complete RV intrinsic declarations.