[PATCH] D36059: [memops] Add a new pass to inject fast-path code for specific library function calls.

Chandler Carruth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 1 00:49:10 PDT 2017


chandlerc added a comment.

In https://reviews.llvm.org/D36059#827032, @craig.topper wrote:

> I suspect SimplifyCFG got it in SimplifyEqualityComparisonWithOnlyPredecessor.


Yeah, this doesn't surprise me as much, but from the comment:

  This does a very limited form of jump threading.

Among cases it doesn't handle is one where, for example, the predicate is hoisted above an outer loop loop. I thought I had a test case that shows this, but I think it was a bit fragile so I removed it, but consider the memset being inside a loop and the test for zero getting unswitched out of that outer loop. I don't think SimplifyCFG will be able to get this, and I'll be very surprised if InstCombine does. I'll try to add a test case for this.

Still not sure how / if instcombine really handles this.


https://reviews.llvm.org/D36059





More information about the llvm-commits mailing list