1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/lib
Kerry McLaughlin d947615252 [LoopVectorize] Enable strict reductions when allowReordering() returns false
When loop hints are passed via metadata, the allowReordering function
in LoopVectorizationLegality will allow the order of floating point
operations to be changed:

  bool allowReordering() const {
    // When enabling loop hints are provided we allow the vectorizer to change
    // the order of operations that is given by the scalar loop. This is not
    // enabled by default because can be unsafe or inefficient.

The -enable-strict-reductions flag introduced in D98435 will currently only
vectorize reductions in-loop if hints are used, since canVectorizeFPMath()
will return false if reordering is not allowed.

This patch changes canVectorizeFPMath() to query whether it is safe to
vectorize the loop with ordered reductions if no hints are used. For
testing purposes, an additional flag (-hints-allow-reordering) has been
added to disable the reordering behaviour described above.

Reviewed By: sdesmalen

Differential Revision: https://reviews.llvm.org/D101836
2021-05-26 13:59:12 +01:00
..
Analysis [NFC] Fix 'unused' warning 2021-05-25 12:23:57 -07:00
AsmParser [OpaquePtr] Make atomicrmw work with opaque pointers 2021-05-25 20:16:21 -07:00
BinaryFormat
Bitcode [OpaquePtr] Make atomicrmw work with opaque pointers 2021-05-25 20:16:21 -07:00
Bitstream
CodeGen [MC][NFCI] Factor out ELF section unique ID calculation 2021-05-26 11:51:29 +01:00
DebugInfo Add support for DWARF embedded source to llvm-symbolizer. 2021-05-20 21:40:28 +04:00
Demangle [Demangle][Rust] Parse function signatures 2021-05-22 11:49:08 +02:00
DWARFLinker [MC] Refactor MCObjectFileInfo initialization and allow targets to create MCObjectFileInfo 2021-05-23 14:15:23 -07:00
ExecutionEngine [JITLink][MachO][arm64] Build GOT entries for defined symbols too. 2021-05-25 12:19:09 -07:00
Extensions
FileCheck
Frontend [NFC][OMP] Fix 'unused' warning 2021-05-24 17:14:38 -07:00
Fuzzer
FuzzMutate
InterfaceStub
IR [OpaquePtr] Make atomicrmw work with opaque pointers 2021-05-25 20:16:21 -07:00
IRReader
LineEditor
Linker Linker: Avoid scheduling the link of a global value twice due to an alias 2021-04-28 13:22:10 -07:00
LTO [SampleFDO] New hierarchical discriminator for Flow Sensitive SampleFDO 2021-05-18 16:23:43 -07:00
MC [MC][ELF] Emit unique sections for different flags 2021-05-26 11:51:29 +01:00
MCA [MCA][RegisterFile] Refactor the move elimination logic to address PR50258. 2021-05-08 18:10:35 +01:00
Object [NFC][object] Change the input parameter of the method isDebugSection. 2021-05-26 08:47:53 +00:00
ObjectYAML [AMDGPU] Add gfx1034 target 2021-05-13 14:25:18 -04:00
Option
Passes Revert "[LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass" 2021-05-25 11:39:49 +09:00
ProfileData [CoverageMapping] Handle gaps in counter IDs for source-based coverage 2021-05-19 10:46:38 -07:00
Remarks
Support [SystemZ][z/OS] Implement getHostCPUName for z/OS 2021-05-25 11:18:12 -04:00
TableGen [TableGen] Make the NUL character invalid in .td files 2021-05-13 10:17:45 -04:00
Target [AArch64] Generate LD1 for anyext i8 or i16 vector load 2021-05-26 14:44:21 +03:00
Testing
TextAPI [TextAPI] Reformat llvm_unreachable message 2021-05-11 09:59:26 -07:00
ToolDrivers
Transforms [LoopVectorize] Enable strict reductions when allowReordering() returns false 2021-05-26 13:59:12 +01:00
WindowsManifest
XRay
CMakeLists.txt