1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
llvm-mirror/lib/Transforms/Utils
Matthew Simpson 94955b1eeb [LoopUtils, LV] Fix PR27246 (first-order recurrences)
This patch ensures that when we detect first-order recurrences, we reject a phi
node if its previous value is also a phi node. During vectorization the initial
and previous values of the recurrence are shuffled together to create the value
for the current iteration. However, phi nodes are not widened like other
instructions. This fixes PR27246.

Differential Revision: http://reviews.llvm.org/D18971

llvm-svn: 265983
2016-04-11 19:48:18 +00:00
..
AddDiscriminators.cpp Remove llvm::getDISubprogram in favor of Function::getSubprogram 2016-03-11 02:14:16 +00:00
ASanStackFrameLayout.cpp
BasicBlockUtils.cpp [LV] Preserve LoopInfo when store predication is used 2016-03-15 18:06:20 +00:00
BreakCriticalEdges.cpp
BuildLibCalls.cpp Fix Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-02 18:20:45 +00:00
BypassSlowDivision.cpp
CloneFunction.cpp IR: RF_IgnoreMissingValues => RF_IgnoreMissingLocals, NFC 2016-04-07 00:26:43 +00:00
CloneModule.cpp Preserve extern_weak linkage in CloneModule. 2016-03-31 20:21:31 +00:00
CMakeLists.txt [ThinLTO] Move global processing from Linker to TransformUtils (NFC) 2016-02-10 18:11:31 +00:00
CmpInstAnalysis.cpp
CodeExtractor.cpp
CtorUtils.cpp
DemoteRegToStack.cpp
Evaluator.cpp Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
FlattenCFG.cpp
FunctionImportUtils.cpp Rework linkInModule(), making it oblivious to ThinLTO 2016-03-19 00:40:31 +00:00
GlobalStatus.cpp NFC: make AtomicOrdering an enum class 2016-04-06 21:19:33 +00:00
InlineFunction.cpp Maintain calling convention when inling calls to llvm.deoptimize 2016-04-09 00:22:59 +00:00
InstructionNamer.cpp
IntegerDivision.cpp TransformUtils: Avoid getNodePtrUnchecked() in integer division, NFC 2016-02-21 20:14:29 +00:00
LCSSA.cpp [AA] Preserve the AA results wrapper pass as well as BasicAA in a few 2016-02-19 03:12:14 +00:00
LLVMBuild.txt
Local.cpp [RS4GC] Lower calls to @llvm.experimental.deoptimize 2016-03-25 20:12:13 +00:00
LoopSimplify.cpp [LoopSimplify] Reuse changeToUnreachable 2016-01-24 19:32:52 +00:00
LoopUnroll.cpp Follow-up for r265605: don't mutate vector we're iterating. 2016-04-07 00:09:42 +00:00
LoopUnrollRuntime.cpp test commit 2016-04-08 20:20:38 +00:00
LoopUtils.cpp [LoopUtils, LV] Fix PR27246 (first-order recurrences) 2016-04-11 19:48:18 +00:00
LoopVersioning.cpp [LoopVersioning] Relax an assert for LCSSA PHIs 2016-03-22 18:38:15 +00:00
LowerInvoke.cpp
LowerSwitch.cpp
Mem2Reg.cpp
MemorySSA.cpp Fix "warning: variabl 'XX’ set but not used" in release build (variable used in assertion, NFC) 2016-04-02 05:34:19 +00:00
MetaRenamer.cpp
ModuleUtils.cpp [ModuleUtils] Use range-based loop. NFC. 2016-03-23 00:43:35 +00:00
PromoteMemoryToRegister.cpp Remove uses of builtin comma operator. 2016-02-18 22:09:30 +00:00
SanitizerStats.cpp Fix Clang-tidy modernize-use-nullptr and modernize-use-override warnings; other minor fixes. 2016-01-26 18:48:36 +00:00
SimplifyCFG.cpp IR: RF_IgnoreMissingValues => RF_IgnoreMissingLocals, NFC 2016-04-07 00:26:43 +00:00
SimplifyIndVar.cpp This reverts commit r265913 and r265912 2016-04-11 15:26:18 +00:00
SimplifyInstructions.cpp
SimplifyLibCalls.cpp [SimplifyLibCalls] Garbage collect dead code. 2016-04-03 01:46:52 +00:00
SplitModule.cpp Preserve blockaddress use edges in the module splitter. 2016-03-31 21:55:11 +00:00
SSAUpdater.cpp
SymbolRewriter.cpp Make some headers self-contained, remove unused includes that violate layering. 2016-01-27 16:05:37 +00:00
UnifyFunctionExitNodes.cpp
Utils.cpp This patch adds MemorySSA to LLVM. 2016-02-02 22:46:49 +00:00
ValueMapper.cpp ValueMapper: Extract llvm::RemapFunction from IRMover.cpp, NFC 2016-04-08 19:26:32 +00:00