[PATCH] D60144: [SCEV] Add option to forget everything in SCEV.

Alina Sbirlea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 2 11:55:40 PDT 2019


asbirlea created this revision.
asbirlea added a reviewer: sanjoy.
Herald added subscribers: jdoerfert, dmgreen, javed.absar, zzheng, jlebar, mehdi_amini.
Herald added a project: LLVM.

Create a method to forget everything in SCEV.
Add a cl::opt and PassManagerBuilder option to use this in LoopUnroll.

Motivation: Certain Halide applications spend a very long time compiling in forgetLoop, and prefer to forget everything and rebuild SCEV from scratch.
Sample difference in compile time reduction: 21.04 to 14.78 using current ToT release build.
Testcase showcasing this cannot be opensourced and is fairly large.
I don't have evidence now that this compile time reduction is true for other applications, hence leaving the option disabled by default.


Repository:
  rL LLVM

https://reviews.llvm.org/D60144

Files:
  include/llvm/Analysis/ScalarEvolution.h
  include/llvm/Transforms/IPO/PassManagerBuilder.h
  include/llvm/Transforms/Scalar.h
  include/llvm/Transforms/Utils/UnrollLoop.h
  lib/Analysis/ScalarEvolution.cpp
  lib/Transforms/IPO/PassManagerBuilder.cpp
  lib/Transforms/Scalar/LoopUnrollPass.cpp
  lib/Transforms/Utils/LoopUnroll.cpp
  lib/Transforms/Utils/LoopUnrollAndJam.cpp
  lib/Transforms/Utils/LoopUnrollRuntime.cpp
  unittests/Transforms/Utils/UnrollLoopTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60144.193338.patch
Type: text/x-patch
Size: 18916 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190402/e03d8028/attachment.bin>


More information about the llvm-commits mailing list