SuccessChanges

Summary

  1. jenkins/tasks: virtualenv: Use the Python3 interpreter (details)
Commit 92122d159f7294fc3534d16354385cd42837ff4c by Azharuddin Mohammed
jenkins/tasks: virtualenv: Use the Python3 interpreter
The file was modifiedtasks/utils/venv.sh (diff)

Summary

  1. Do actual DCE in LoopUnroll (try 3) (details)
  2. [AArch64][SVE] Implement extractelement of i1 vectors. (details)
Commit b6320eeb8622f05e4a5d4c7f5420523357490fca by listmail
Do actual DCE in LoopUnroll (try 3)

Recommitting after fixing a bug found post commit.  Amusingly, try 1 had been correct, and by reverting to incorporate last minute review feedback, I introduce the bug.  Oops.  :)

The problem was that recursively deleting an instruction can delete instructions beyond the current iterator (via a dead phi), thus invalidating iteration.  Test case added in LoopUnroll/dce.ll to cover this case.

LoopUnroll does a limited DCE pass after unrolling, but if you have a chain of dead instructions, it only deletes the last one. Improve the code to recursively delete all trivially dead instructions.

Differential Revision: https://reviews.llvm.org/D102511
The file was modifiedllvm/test/Transforms/LoopUnroll/unroll-unconditional-latch.ll (diff)
The file was modifiedllvm/test/Transforms/LoopUnroll/unroll-header-exiting-with-phis.ll (diff)
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp (diff)
The file was addedllvm/test/Transforms/LoopUnroll/dce.ll
The file was modifiedllvm/test/Transforms/LoopUnroll/pr45939-peel-count-and-complete-unroll.ll (diff)
The file was modifiedllvm/test/Transforms/LoopUnroll/full-unroll-invariant.ll (diff)
The file was modifiedllvm/test/Transforms/LoopUnroll/optsize-loop-size.ll (diff)
The file was modifiedllvm/test/Transforms/LoopUnroll/scevunroll.ll (diff)
The file was modifiedllvm/test/Transforms/LoopUnroll/AArch64/full-unroll-trip-count-upper-bound.ll (diff)
The file was modifiedllvm/test/Transforms/LoopUnroll/nonlatchcondbr.ll (diff)
The file was modifiedllvm/test/Transforms/LoopUnrollAndJam/unroll-and-jam.ll (diff)
Commit 3dd49ec1948b8be0b025e1558071506a58454722 by efriedma
[AArch64][SVE] Implement extractelement of i1 vectors.

The implementation just extends the vector to a larger element type, and
extracts from that.  Not fancy, but generates reasonable code.

There was discussion in the review of doing the promotion in
target-independent code, but I'm sticking with this to avoid making
LegalizeDAG infrastructure more complicated.

Differential Revision: https://reviews.llvm.org/D87651
The file was modifiedllvm/test/CodeGen/AArch64/sve-extract-element.ll (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)