-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Description
Based on the live variable analysis pass I wrote for RISCV, it detects inconsistencies in liveness information.
- GlobalIsel::Combiner::tryDCE does not update liveness. #168199
- Fast Register Allocator does not update liveness. #168201
The following tests fail when the pass is enabled by default but triaging each will take a while. So far I found the above two passes that do not update liveness.
LLVM :: CodeGen/RISCV/GlobalISel/alu-roundtrip-rv64.ll
LLVM :: CodeGen/RISCV/GlobalISel/alu-roundtrip.ll
LLVM :: CodeGen/RISCV/GlobalISel/constbarrier-rv64.ll
LLVM :: CodeGen/RISCV/GlobalISel/double-arith.ll
LLVM :: CodeGen/RISCV/GlobalISel/double-convert.ll
LLVM :: CodeGen/RISCV/GlobalISel/double-fcmp.ll
LLVM :: CodeGen/RISCV/GlobalISel/float-arith.ll
LLVM :: CodeGen/RISCV/GlobalISel/float-convert.ll
LLVM :: CodeGen/RISCV/GlobalISel/float-fcmp.ll
LLVM :: CodeGen/RISCV/GlobalISel/fp128.ll
LLVM :: CodeGen/RISCV/GlobalISel/rvv/vse.ll
LLVM :: CodeGen/RISCV/GlobalISel/rvv/vsse.ll
LLVM :: CodeGen/RISCV/GlobalISel/rvv/vsuxei-rv64.ll
LLVM :: CodeGen/RISCV/GlobalISel/shifts.ll
LLVM :: CodeGen/RISCV/GlobalISel/vararg.ll
LLVM :: CodeGen/RISCV/O0-pipeline.ll
LLVM :: CodeGen/RISCV/O3-pipeline.ll
LLVM :: CodeGen/RISCV/constpool-known-bits.ll
LLVM :: CodeGen/RISCV/dwarf-eh.ll
LLVM :: CodeGen/RISCV/exception-pointer-register.ll
LLVM :: CodeGen/RISCV/half-convert.ll
LLVM :: CodeGen/RISCV/half-select-fcmp.ll
LLVM :: CodeGen/RISCV/lpad.ll
LLVM :: CodeGen/RISCV/machine-live-variables.mir
LLVM :: CodeGen/RISCV/misched-mem-clustering.mir
LLVM :: CodeGen/RISCV/rvv/copyprop.mir
LLVM :: CodeGen/RISCV/rvv/extract-subvector.ll
LLVM :: CodeGen/RISCV/rvv/extractelt-fp.ll
LLVM :: CodeGen/RISCV/rvv/extractelt-int-rv64.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-deinterleave-load.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-extract-subvector.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-extract.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-insert-subvector-shuffle.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-int-explodevector.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-shuffle-deinterleave2.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-shuffle-exact-vlen.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-shuffle-int.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-shuffle-reverse.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll
LLVM :: CodeGen/RISCV/rvv/fixed-vectors-vpload.ll
LLVM :: CodeGen/RISCV/rvv/fmaximumnum-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/fminimumnum-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/llrint-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/llrint-vp.ll
LLVM :: CodeGen/RISCV/rvv/llround-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/lrint-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/lrint-vp.ll
LLVM :: CodeGen/RISCV/rvv/lround-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/mgather-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/named-vector-shuffle-reverse.ll
LLVM :: CodeGen/RISCV/rvv/nontemporal-vp-scalable.ll
LLVM :: CodeGen/RISCV/rvv/partial-reduction-add.ll
LLVM :: CodeGen/RISCV/rvv/riscv-codegenprepare-asm.ll
LLVM :: CodeGen/RISCV/rvv/sink-splat-operands-i1.ll
LLVM :: CodeGen/RISCV/rvv/splat-vectors.ll
LLVM :: CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
LLVM :: CodeGen/RISCV/rvv/vector-deinterleave.ll
LLVM :: CodeGen/RISCV/rvv/vector-interleave.ll
LLVM :: CodeGen/RISCV/rvv/vfadd-constrained-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfadd-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfdiv-constrained-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfdiv-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfma-vp.ll
LLVM :: CodeGen/RISCV/rvv/vfmadd-constrained-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfmax-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfmin-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfmul-constrained-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfmul-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfmv-bf-s.ll
LLVM :: CodeGen/RISCV/rvv/vfmv.f.s.ll
LLVM :: CodeGen/RISCV/rvv/vfpext-vp.ll
LLVM :: CodeGen/RISCV/rvv/vfptoi-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfsub-constrained-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vfsub-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vleff.ll
LLVM :: CodeGen/RISCV/rvv/vlsegff-rv64-dead.ll
LLVM :: CodeGen/RISCV/rvv/vmv.x.s.ll
LLVM :: CodeGen/RISCV/rvv/vp-vector-interleaved-access.ll
LLVM :: CodeGen/RISCV/rvv/vpgather-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vpload.ll
LLVM :: CodeGen/RISCV/rvv/vpscatter-sdnode.ll
LLVM :: CodeGen/RISCV/rvv/vsetvli-insert.ll
LLVM :: CodeGen/RISCV/rvv/vsext-vp.ll
LLVM :: CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll
LLVM :: CodeGen/RISCV/rvv/vzext-vp.ll
LLVM :: CodeGen/RISCV/rvv/zvqdotq-sdnode.ll