[PATCH] D32872: [PowerPC] Leverage PGO data to version/expand small/large memcpy calls
    Brad Nemanich via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Nov  3 14:26:24 PDT 2017
    
    
  
bnemanich updated this revision to Diff 121554.
bnemanich added a comment.
Turns on memcpy loop expansion optimization by default for PowerPC.
Turns off memcpy loop expansion for unknown sized memcpy calls but provides a new option to enable expansion for unknown sized memcpy calls.
Also provides a new option to enable expansion for unknown sized memcpy calls for non-pgo runs.
Changes the loop datasize to be 32 bytes.
Micro-benchmarks have shown that this optimization can more than double the performance for known size memcpy calls that are smaller than 512 bytes on Power8 machines.
https://reviews.llvm.org/D32872
Files:
  lib/Target/PowerPC/PPCLowerMemIntrinsics.cpp
  lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  lib/Transforms/Utils/LowerMemIntrinsics.cpp
  test/CodeGen/PowerPC/memcpy-loop-expansion.ll
  test/CodeGen/PowerPC/memcpy.nopgo.ll
  test/CodeGen/PowerPC/memcpy.pgo.cold.ll
  test/CodeGen/PowerPC/memcpy.pgo.hot.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32872.121554.patch
Type: text/x-patch
Size: 36660 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171103/eb69d890/attachment.bin>
    
    
More information about the llvm-commits
mailing list