llvm-project/llvm/lib
Ivan Krasin c2124e185c Revert r298620: [LV] Vectorize GEPs
Reason: breaks linking Chromium with LLD + ThinLTO (a pass crashes)
LLVM bug: https://bugs.llvm.org//show_bug.cgi?id=32413

Original change description:

[LV] Vectorize GEPs

This patch adds support for vectorizing GEPs. Previously, we only generated
vector GEPs on-demand when creating gather or scatter operations. All GEPs from
the original loop were scalarized by default, and if a pointer was to be stored
to memory, we would have to build up the pointer vector with insertelement
instructions.

With this patch, we will vectorize all GEPs that haven't already been marked
for scalarization.

The patch refines collectLoopScalars to more exactly identify the scalar GEPs.
The function now more closely resembles collectLoopUniforms. And the patch
moves vector GEP creation out of vectorizeMemoryInstruction and into the main
vectorization loop. The vector GEPs needed for gather and scatter operations
will have already been generated before vectoring the memory accesses.

Original Differential Revision: https://reviews.llvm.org/D30710

llvm-svn: 298735
2017-03-24 20:49:43 +00:00
..
Analysis [InstCombine] Provide a way to calculate KnownZero/One for Add/Sub in SimplifyDemandedUseBits without recursing into ComputeKnownBits 2017-03-24 16:56:51 +00:00
AsmParser Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
Bitcode [ThinLTO] Add support for emitting minimized bitcode for thin link 2017-03-23 19:47:39 +00:00
CodeGen Refactor code to reduce indentation and improve readability. (NFC) 2017-03-23 23:35:09 +00:00
DebugInfo [PDB] Split item and type records when merging type streams 2017-03-24 17:26:38 +00:00
Demangle Add support for demangling C++11 thread_local variables. 2017-01-31 15:56:36 +00:00
ExecutionEngine Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
Fuzzer [libFuzzer] split two tests to get more parallelism in test runs 2017-03-24 00:51:18 +00:00
IR Set the prof weight correctly for call instructions in DeadArgumentElimination. 2017-03-23 23:26:00 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LTO IPO: Const correctness for summaries passed into passes. 2017-03-22 18:22:59 +00:00
LibDriver LibDriver: Allow resource files to be archive members. 2016-12-15 19:37:46 +00:00
LineEditor
Linker [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
MC [WebAssembly] Fix import type to be signed LEBs 2017-03-23 15:46:47 +00:00
Object [ThinLTO] Add support for emitting minimized bitcode for thin link 2017-03-23 19:47:39 +00:00
ObjectYAML [ObjectYAML] Fix issue with DWARF2 AddrSize 8 2017-03-07 21:34:35 +00:00
Option Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
Passes Add call branch annotation for ICP promoted direct call in SamplePGO mode. 2017-02-23 22:15:18 +00:00
ProfileData SamplePGO ThinLTO ICP fix for local functions. 2017-03-14 17:33:01 +00:00
Support Make home_directory look in the password database in addition to $HOME. 2017-03-22 15:24:59 +00:00
TableGen Use print() instead of dump() in code 2017-01-28 02:47:46 +00:00
Target [Outliner] Remove no red zone requirment for AArch64 2017-03-24 20:47:59 +00:00
Transforms Revert r298620: [LV] Vectorize GEPs 2017-03-24 20:49:43 +00:00
XRay [XRAY] [x86_64] Adding a Flight Data filetype reader to the llvm-xray Trace implementation. 2017-02-17 01:47:16 +00:00
CMakeLists.txt [XRay] Define the library for XRay trace logs 2017-01-11 06:39:09 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00