llvm-project/llvm/lib/Transforms
Chad Rosier cc299b627d [LIR] Add support for creating memcpys from loops with a negative stride.
This allows us to transform the below loop into a memcpy.

void test(unsigned *__restrict__ a, unsigned *__restrict__ b) {
  for (int i = 2047; i >= 0; --i) {
    a[i] = b[i];
  }
}

This is the memcpy version of r251518, which added support for memset with
negative strided loops.

llvm-svn: 253091
2015-11-13 21:51:02 +00:00
..
Hello
IPO [GlobalOpt] Make sure all debug lines end with '\n' 2015-11-13 11:05:13 +00:00
InstCombine [InstCombine] Add trivial folding (bitreverse (bitreverse x)) -> x 2015-11-12 12:39:41 +00:00
Instrumentation [safestack] Rewrite isAllocaSafe using SCEV. 2015-11-13 21:21:42 +00:00
ObjCARC ObjCARC: Remove implicit ilist iterator conversions, NFC 2015-10-19 23:20:14 +00:00
Scalar [LIR] Add support for creating memcpys from loops with a negative stride. 2015-11-13 21:51:02 +00:00
Utils [SimplifyLibCalls] Make a function shorter. NFC. 2015-11-12 23:39:00 +00:00
Vectorize [SLP] Enable -slp-vectorize-hor by default. 2015-11-11 15:03:46 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile