[PATCH] D30254: Remove sometimes faulty rewrite of memcpy in instcombine.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 22 11:04:00 PST 2017


efriedma added inline comments.


================
Comment at: test/Transforms/InstCombine/memcpy-to-load.ll:15
+; CHECK: [[TMP:%[0-9]+]] = load i64
+; CHECK: store i64 [[TMP]]
+
----------------
We already produce this result 64-bit targets (combineLoadToOperationType transforms double load/store to i64 load/store); the interesting piece is what happens on targets where i64 isn't legal.

In general, it shouldn't matter what we produce here; we should always eventually rewrite loads/stores to the appropriate register type for the target.  And other optimization passes don't really care about the types of loads and stores anyway (SROA is a lot more flexible than it used to be).  So if this does in fact expose a performance regression, we should fix it elsewhere.

That said, it would be nice if you could give testsuite performance numbers on some 32-bit target to make sure we aren't missing some important optimization.


https://reviews.llvm.org/D30254





More information about the llvm-commits mailing list