[all-commits] [llvm/llvm-project] fd2737: [ARM] MVE VPT block tests with debug info. NFC
David Green via All-commits
all-commits at lists.llvm.org
Fri Jun 25 20:21:00 PDT 2021
Branch: refs/heads/release/12.x
Home: https://github.com/llvm/llvm-project
Commit: fd27379463917761a5e6135cfdb0b2d163a72ee3
https://github.com/llvm/llvm-project/commit/fd27379463917761a5e6135cfdb0b2d163a72ee3
Author: David Green <david.green at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
A llvm/test/CodeGen/Thumb2/mve-vpt-block-debug.mir
Log Message:
-----------
[ARM] MVE VPT block tests with debug info. NFC
Commit: c7381b628d63b4423617163ee1116e64f49d2265
https://github.com/llvm/llvm-project/commit/c7381b628d63b4423617163ee1116e64f49d2265
Author: David Green <david.green at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
M llvm/lib/Target/ARM/MVEVPTBlockPass.cpp
M llvm/test/CodeGen/Thumb2/mve-vpt-block-debug.mir
Log Message:
-----------
[ARM] Skip debug during vpt block creation
Debug info is currently preventing VPT block creation, leading to
different codegen. This patch attempts to skip any debug instructions
during vpt block creation, making sure they do not interfere.
Differential Revision: https://reviews.llvm.org/D103610
Commit: a3543fd9d47054596fed913b8ddc68285200c821
https://github.com/llvm/llvm-project/commit/a3543fd9d47054596fed913b8ddc68285200c821
Author: Victor Campos <victor.campos at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
A llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-vpt-debug.mir
Log Message:
-----------
[ARM] Handle debug instrs in ARM Low Overhead Loop pass
In function ConvertVPTBlocks(), it is assumed that every instruction
within a vector-predicated block is predicated. This is false for debug
instructions, used by LLVM.
Because of this, an assertion failure is reached when an input contains
debug instructions inside VPT blocks. In non-assert builds, an out of
bounds memory access took place.
The present patch properly covers the case of debug instructions.
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D99075
Commit: 0f3fec4618e40f54ec2a042cb603cdedd253312c
https://github.com/llvm/llvm-project/commit/0f3fec4618e40f54ec2a042cb603cdedd253312c
Author: David Green <david.green at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
M llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
M llvm/test/CodeGen/Thumb2/mve-gather-optimisation-deep.ll
Log Message:
-----------
[ARM] Guard against loop variant gather ptr operands
This ensures that the operands of any gather/scatter instructions that
we attempt to push out of the loop are invariant, preventing invalid IR
from being generated.
Commit: e2e2057132c1360d014235a087d4f678efc56420
https://github.com/llvm/llvm-project/commit/e2e2057132c1360d014235a087d4f678efc56420
Author: David Green <david.green at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
M llvm/lib/Target/ARM/MVETailPredication.cpp
A llvm/test/CodeGen/Thumb2/mve-tailpred-loopinvariant.ll
Log Message:
-----------
[ARM] Ensure loop invariant active.lane.mask operands
CGP can move instructions like a ptrtoint into a loop, but the
MVETailPredication when converting them will currently assume invariant
trip counts. This tries to ensure the operands are loop invariant, and
bails if not.
Differential Revision: https://reviews.llvm.org/D100550
Commit: 1a8f0b969c4e77e32fe88b9e5de257fe96a3307d
https://github.com/llvm/llvm-project/commit/1a8f0b969c4e77e32fe88b9e5de257fe96a3307d
Author: David Green <david.green at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/extending-loads.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/nested.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-basic.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-const.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-disabled-in-loloops.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-intrinsic-add-sat.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-intrinsic-fabs.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-intrinsic-round.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-intrinsic-sub-sat.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-reduce.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-widen.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/varying-outer-2d-reduction.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/vector-arith-codegen.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/vector-reduce-mve-tail.ll
M llvm/test/CodeGen/Thumb2/mve-fma-loops.ll
M llvm/test/CodeGen/Thumb2/mve-gather-increment.ll
M llvm/test/CodeGen/Thumb2/mve-gather-optimisation-deep.ll
M llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
M llvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll
Log Message:
-----------
[ARM] Clean up some tests, removing dead instructions. NFC
Commit: f83afe6ae9613512bd8f30090d8c287292b55dcd
https://github.com/llvm/llvm-project/commit/f83afe6ae9613512bd8f30090d8c287292b55dcd
Author: David Green <david.green at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
M llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/remat-vctp.ll
M llvm/test/CodeGen/Thumb2/lsll0.ll
M llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
A llvm/test/CodeGen/Thumb2/mve-gather-unused.ll
M llvm/test/CodeGen/Thumb2/mve-phireg.ll
M llvm/test/CodeGen/Thumb2/mve-pred-xor.ll
M llvm/test/CodeGen/Thumb2/mve-selectcc.ll
M llvm/test/CodeGen/Thumb2/mve-vqdmulh.ll
Log Message:
-----------
[ARM] Ensure instructions are simplified prior to GatherScatter lowering.
Surprisingly, not all instructions are always simplified after unrolling
and before MVE gather/scatter lowering. Notably dead gather operations
can be left around which cause the gather/scatter lowering pass to crash
if there are multiple gathers, some of which are dead.
This patch ensures they are simplified before we modify anything, which
can change some of the existing tests, including making them no-longer
test what they originally tested. This uses a combination of disabling
the gather/scatter lowering pass and adjusting the test to keep them as
before.
Differential Revision: https://reviews.llvm.org/D103150
Commit: d29ae443aa4028ca9cc274cd1496f7d80f34a38a
https://github.com/llvm/llvm-project/commit/d29ae443aa4028ca9cc274cd1496f7d80f34a38a
Author: David Green <david.green at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
M llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
Log Message:
-----------
[ARM] Fix Changed status in MVEGatherScatterLoweringPass.
Now that we are calling SimplifyInstructionsInBlock, make sure we update
Changed when it reports alterations.
Commit: b7c7b42db1d16c4cab595bf53c62a70a6a505e0e
https://github.com/llvm/llvm-project/commit/b7c7b42db1d16c4cab595bf53c62a70a6a505e0e
Author: David Green <david.green at arm.com>
Date: 2021-06-25 (Fri, 25 Jun 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMBlockPlacement.cpp
M llvm/test/CodeGen/Thumb2/block-placement.mir
Log Message:
-----------
[ARM] Use just ARM::t2B in ARMBlockPlacementPass
The ARMConstantIsland pass will convert any t2B to tB if they are within
range after it has added or moved any constant pools. They don't need to
be deliberately converted beforehand, and it doesn't deal with needing
to convert tB to t2B very well.
Compare: https://github.com/llvm/llvm-project/compare/07234c7d6bc2...b7c7b42db1d1
More information about the All-commits
mailing list