llvm-6502/test/Transforms
Renato Golin 35b114fe18 Small refactor on VectorizerHint for deduplication
Previously, the hint mechanism relied on clean up passes to remove redundant
metadata, which still showed up if running opt at low levels of optimization.
That also has shown that multiple nodes of the same type, but with different
values could still coexist, even if temporary, and cause confusion if the
next pass got the wrong value.

This patch makes sure that, if metadata already exists in a loop, the hint
mechanism will never append a new node, but always replace the existing one.
It also enhances the algorithm to cope with more metadata types in the future
by just adding a new type, not a lot of code.

Re-applying again due to MSVC 2013 being minimum requirement, and this patch
having C++11 that MSVC 2012 didn't support.

Fixes PR20655.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216870 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-01 10:00:17 +00:00
..
ADCE
AddDiscriminators Use DILexicalBlockFile, rather than DILexicalBlock, to track discriminator changes to ensure discriminator changes don't introduce new DWARF DW_TAG_lexical_blocks. 2014-08-21 22:45:21 +00:00
ArgumentPromotion Don't promote byval pointer arguments when padding matters 2014-08-28 22:42:00 +00:00
AtomicExpand/ARM Rename AtomicExpandLoadLinked into AtomicExpand 2014-08-21 21:50:01 +00:00
BBVectorize Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
BranchFolding Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call 2014-02-13 14:44:26 +00:00
CodeExtractor
CodeGenPrepare CodeGenPrep: fall back to MVT::Other if instruction's type isn't an EVT. 2014-07-29 10:20:22 +00:00
ConstantHoisting [ConstantHoisting][X86] Improve the cost model for small constants with large types (i64 and above). 2014-06-10 00:32:29 +00:00
ConstantMerge Remove the linker_private and linker_private_weak linkages. 2014-03-13 23:18:37 +00:00
ConstProp Fix a bug around truncating vector in const prop. 2014-08-21 02:12:35 +00:00
CorrelatedValuePropagation
DeadArgElim musttail: Don't eliminate varargs packs if there is a forwarding call 2014-08-26 00:59:51 +00:00
DeadStoreElimination Relax the constraint more in MemoryDependencyAnalysis.cpp 2014-08-29 20:32:58 +00:00
DebugIR
EarlyCSE
FunctionAttrs [optnone] Make the optnone attribute effective at suppressing function 2014-08-13 10:49:33 +00:00
GCOVProfiling Fix coverage for files with global constructors again. Adds a testcase to the commit from r206671, as requested by David Blaikie. 2014-06-05 04:31:43 +00:00
GlobalDCE Remove dangling initializers in GlobalDCE 2014-08-25 17:51:14 +00:00
GlobalOpt GlobalOpt: Optimize in the face of insertvalue/extractvalue 2014-08-08 05:50:43 +00:00
GVN Relax the constraint more in MemoryDependencyAnalysis.cpp 2014-08-29 20:32:58 +00:00
IndVarSimplify [INDVARS] Extend using of widening of induction variables for the cases of "sub nsw" and "mul nsw" instructions. 2014-08-21 08:25:45 +00:00
Inline Feed AA to the inliner and use AA->getModRefBehavior in AddAliasScopeMetadata 2014-09-01 09:01:39 +00:00
InstCombine InstCombine: Try harder to combine icmp instructions 2014-08-30 06:18:20 +00:00
InstMerge MergedLoadStoreMotion pass 2014-07-18 19:13:09 +00:00
InstSimplify InstSimplify: Move a transform from InstCombine to InstSimplify 2014-08-28 03:34:28 +00:00
Internalize Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
IPConstantProp No need for those tests to go thru llvm-as and/or llvm-dis. 2014-05-27 22:03:28 +00:00
JumpThreading In LVI(Lazy Value Info), originally value on a BB can only be caculated once, 2014-08-11 05:02:04 +00:00
LCSSA
LICM Make Value::isDereferenceablePointer handle offsets to pointer types with dereferenceable attributes 2014-07-19 03:25:16 +00:00
LoadCombine Add LoadCombine pass. 2014-05-29 01:55:07 +00:00
LoopDeletion
LoopIdiom R600: Implement TTI:getPopcntSupport 2014-07-18 06:07:13 +00:00
LoopReroll
LoopRotate [LPM] Fix PR18643, another scary place where loop transforms failed to 2014-01-29 13:16:53 +00:00
LoopSimplify No need for those tests to go thru llvm-as and/or llvm-dis. 2014-05-27 22:03:28 +00:00
LoopStrengthReduce Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
LoopUnroll After unrolling a loop with llvm.loop.unroll.count metadata (unroll factor 2014-07-24 22:36:40 +00:00
LoopUnswitch
LoopVectorize Small refactor on VectorizerHint for deduplication 2014-09-01 10:00:17 +00:00
LowerAtomic IR: add "cmpxchg weak" variant to support permitted failure. 2014-06-13 14:24:07 +00:00
LowerExpectIntrinsic Lower llvm.expect intrinsic correctly for i1 2014-02-02 22:43:55 +00:00
LowerInvoke Remove LowerInvoke's obsolete "-enable-correct-eh-support" option 2014-03-20 19:54:47 +00:00
LowerSwitch Added test for commit r212802 that was missing 2014-07-11 10:36:00 +00:00
Mem2Reg
MemCpyOpt Ignore lifetime intrinsics in use list for MemCpyOptimizer. Patch by Luqman Aden, review by Hal Finkel. 2014-09-01 06:03:11 +00:00
MergeFunc MergeFunc patch from Björn Steinbrink. 2014-07-15 10:46:51 +00:00
MetaRenamer Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
ObjCARC Fix use_iterator crash in ObjCArc from r203364 2014-03-18 22:32:43 +00:00
PartiallyInlineLibCalls PartiallyInlineLibCalls: Check sqrt result type before transforming it. 2014-08-01 23:21:21 +00:00
PhaseOrdering
PruneEH
Reassociate Reassociate x + -0.1234 * y into x - 0.1234 * y 2014-08-21 10:45:30 +00:00
Reg2Mem
SampleProfile Use DILexicalBlockFile, rather than DILexicalBlock, to track discriminator changes to ensure discriminator changes don't introduce new DWARF DW_TAG_lexical_blocks. 2014-08-21 22:45:21 +00:00
Scalarizer
ScalarRepl Fix PR18800. llvm intrinsic memcpy takes 5 arguments void @llvm.memcpy.p0i8.p0i8.i32(i8* <dest>, i8* <src>, i32 <len>, i32 <align>, i1 <isvolatile>).The test case incorrectly uses the old format resulting in isVolatile function in MemIntrinsic to crash during SROA transformation.Modified the test case to use correct signature of memcpy and memset. 2014-03-13 04:50:29 +00:00
SCCP SCCP: update for cmpxchg returning { iN, i1 } now. 2014-06-13 14:54:09 +00:00
SeparateConstOffsetFromGEP/NVPTX Partially revert r210444 due to performance regression 2014-07-16 23:25:00 +00:00
SimplifyCFG Make fabs safe to speculatively execute 2014-08-29 16:01:17 +00:00
Sink Sink: Don't sink static allocas from the entry block 2014-03-21 15:51:51 +00:00
SLPVectorizer Fix: SLPVectorizer tried to move an instruction which was replaced by a vector instruction. 2014-08-28 07:04:02 +00:00
SROA Add a test case for SROA where the store size is bigger than slice size. The 2014-08-22 23:27:04 +00:00
StripSymbols Add a debug info code generation level to the compile unit metadata 2014-02-27 01:24:56 +00:00
StructurizeCFG
TailCallElim We may visit a call that uses an alloca multiple times in callUsesLocalStack, sometimes with IsNocapture true and sometimes with IsNocapture false. We accidentally skipped work we needed to do in the IsNocapture=false case if we were called with IsNocapture=true the first time. Fixes PR20405! 2014-07-23 06:24:49 +00:00
TailDup Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
Util utils: Fix segfault in flattencfg 2014-08-13 20:31:53 +00:00