cdl-saarland / rv

RV: A Unified Region Vectorizer for LLVM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 be readonly (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 annotated convergent (this is a potential workaround to stop LLVM from "hoisting ifs" involving rv_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.