summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2014-02-16 15:49:50 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2014-02-16 15:49:50 +0000
commit26f567d8a4ea440c6182c793d6946aad5587cfe7 (patch)
treed58b9b2db8de2932fa5ba52c5a717a615fc4efd2 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
parent7e78a5a2f5b0f63b50e795f4c91147ed2a31747b (diff)
downloadbcm5719-llvm-26f567d8a4ea440c6182c793d6946aad5587cfe7.tar.gz
bcm5719-llvm-26f567d8a4ea440c6182c793d6946aad5587cfe7.zip
SCEVExpander: Try hard not to create derived induction variables in other loops
During LSR of one loop we can run into a situation where we have to expand the start of a recurrence of a loop induction variable in this loop. This start value is a value derived of the induction variable of a preceeding loop. SCEV has cannonicalized this value to a different recurrence than the recurrence of the preceeding loop's induction variable (the type and/or step direction) has changed). When we come to instantiate this SCEV we created a second induction variable in this preceeding loop. This patch tries to base such derived induction variables of the preceeding loop's induction variable. This helps twolf on arm and seems to help scimark2 on x86. Reapply with a fix for the case of a value derived from a pointer. radar://15970709 llvm-svn: 201496
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud