llvm/lib/Transforms
Rong Xu 9e52f8ee8b [PGO] Memory intrinsic calls optimization based on profiled size
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:

Differential Revision: http://reviews.llvm.org/D28966


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299446 91177308-0d34-0410-b5e6-96231b3b80d8
2017-04-04 16:42:20 +00:00
..
Coroutines Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
InstCombine [InstCombine] Use setAllBits in place of getAllOnesValue since we know the bitwidths are the same. NFCI 2017-04-04 05:03:02 +00:00
Instrumentation [PGO] Memory intrinsic calls optimization based on profiled size 2017-04-04 16:42:20 +00:00
IPO [PGO] Memory intrinsic calls optimization based on profiled size 2017-04-04 16:42:20 +00:00
ObjCARC Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
Scalar NewGVN: Handle coercion of constant stores, loads, memory insts. 2017-04-02 13:23:44 +00:00
Utils [BypassSlowDivision] Do not bypass division of hash-like values 2017-04-02 13:14:30 +00:00
Vectorize [LV] Transform truncations of non-primary induction variables 2017-03-27 20:07:38 +00:00
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
LLVMBuild.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00