This patch optimizes two memory intrinsic operations: memset and memcpy based on the profiled size of the operation. The high level transformation is like:
mem_op(..., size) ==> switch (size) { case s1: mem_op(..., s1); goto merge_bb; case s2: mem_op(..., s2); goto merge_bb; ... default: mem_op(..., size); goto merge_bb; } merge_bb:
There are a few internal options that controls when the optimization takes place.
This patch in an incremental patch based on
https://reviews.llvm.org/D28965
Add a comment on the kinds.
NormalGroup--> NonLargeGroup?