aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2014-02-15 17:11:56 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2014-02-15 17:11:56 +0000
commit1e12f8563d4b7371e34a319f11964e0ef6b545c6 (patch)
tree3e0e1869dec98e203cab25202a9efc09e0bdf306 /clang/lib/CodeGen/CodeGenModule.cpp
parentc4e7f305df3bfb96af5780692d21072b1740dd41 (diff)
downloadllvm-1e12f8563d4b7371e34a319f11964e0ef6b545c6.zip
llvm-1e12f8563d4b7371e34a319f11964e0ef6b545c6.tar.gz
llvm-1e12f8563d4b7371e34a319f11964e0ef6b545c6.tar.bz2
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. radar://15970709 llvm-svn: 201465
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions