[PATCH] D24716: [Polly] DeLICM/DePRE (WIP)

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 19 02:27:50 PDT 2016


Meinersbur created this revision.
Meinersbur added a reviewer: grosser.
Meinersbur added subscribers: llvm-commits, pollydev.
Meinersbur added a project: Polly.
Herald added subscribers: mgorny, beanz.

Implement -polly-delicm pass. The pass intends to undo the effects of LoadInvariantCodeMotion and GVN's Partial Redundancy Elimination (Load PTR) which adds additional scalar dependencies into scops.

DeLICM/DePRE will try to map those scalars back to the array elements they were promoted from, as long as the array element is unused.

This is work in progress. The patch is not as tidy as it could be, not all functions have been commended yet, most test cases fail and some refactoring is still planned.

https://reviews.llvm.org/D24716

Files:
  include/polly/DeLICM.h
  include/polly/LinkAllPasses.h
  include/polly/ScopInfo.h
  include/polly/Support/GICHelper.h
  lib/Analysis/ScopInfo.cpp
  lib/CMakeLists.txt
  lib/CodeGen/BlockGenerators.cpp
  lib/CodeGen/IslNodeBuilder.cpp
  lib/Support/GICHelper.cpp
  lib/Support/RegisterPasses.cpp
  lib/Transform/DeLICM.cpp
  test/CMakeLists.txt
  test/DeLICM/block.ll
  test/DeLICM/block0.ll
  test/DeLICM/delicm_GVN.ll
  test/DeLICM/delicm_LICM_cond.ll
  test/DeLICM/delicm_LICM_conditional_reductions.ll
  test/DeLICM/delicm_LICM_consecutive_reductions.ll
  test/DeLICM/delicm_LICM_loads.ll
  test/DeLICM/delicm_LICM_nested_reductions.ll
  test/DeLICM/delicm_LICM_nonaffine.ll
  test/DeLICM/delicm_LICM_reduction.ll
  test/DeLICM/delicm_LICM_split.ll
  test/DeLICM/delicm_LICM_two_reductions.ll
  test/DeLICM/delicm_LICM_writes.ll
  test/DeLICM/delicm_base.ll
  test/DeLICM/doubleacc.ll
  test/DeLICM/durbin.ll
  test/DeLICM/gemm-before.ll
  test/DeLICM/gemm.ll
  test/DeLICM/gemm_complete.ll
  test/DeLICM/incomplete_phi.ll
  test/DeLICM/licm_potential_store.ll
  test/DeLICM/licm_reduction_nested.ll
  test/DeLICM/licm_store.ll
  test/DeLICM/macroblock0.ll
  test/DeLICM/oggenc.ll
  test/DeLICM/reduction.ll
  test/DeLICM/reduction_embedded.ll
  test/DeLICM/tsc.ll
  test/DeLICM/tsc0.ll
  test/ScopInfo/NonAffine/non_affine_loop_used_later.ll
  test/ScopInfo/licm_load.ll
  test/ScopInfo/licm_potential_store.ll
  test/ScopInfo/licm_reduction.ll
  test/ScopInfo/licm_reduction_nested.ll
  test/ScopInfo/licm_store.ll
  test/update_check.py
  unittests/CMakeLists.txt
  unittests/DeLICM/CMakeLists.txt
  unittests/DeLICM/DeLICMTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24716.71782.patch
Type: text/x-patch
Size: 614636 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160919/a578e6f7/attachment-0001.bin>


More information about the llvm-commits mailing list