1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/unittests/Transforms/Utils
Alina Sbirlea 2493ab105d [SCEV] Add option to forget everything in SCEV.
Summary:
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.

The option disabled by default, but it may be desirable to enable by
default. Evidence in favor (two difference runs on different days/ToT state):

File Before (s) After (s)
clang-9.bc 7267.91 6639.14
llvm-as.bc 194.12 194.12
llvm-dis.bc 62.50 62.50
opt.bc 1855.85 1857.53

File Before (s) After (s)
clang-9.bc 8588.70 7812.83
llvm-as.bc 196.20 194.78
llvm-dis.bc 61.55 61.97
opt.bc 1739.78 1886.26

Reviewers: sanjoy

Subscribers: mehdi_amini, jlebar, zzheng, javed.absar, dmgreen, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60144

llvm-svn: 358304
2019-04-12 19:16:07 +00:00
..
ASanStackFrameLayoutTest.cpp
BasicBlockUtilsTest.cpp [Utils] Extract EliminateUnreachableBlocks (NFC) 2019-03-11 17:51:57 +00:00
CloningTest.cpp Move DomTreeUpdater from IR to Analysis 2019-02-06 02:52:52 +00:00
CMakeLists.txt
CodeExtractorTest.cpp [CodeExtractor] Restore outputs after creating exit stubs 2019-02-08 20:48:04 +00:00
FunctionComparatorTest.cpp
IntegerDivisionTest.cpp
LocalTest.cpp [DebugInfo] Introduce DW_OP_LLVM_convert 2019-03-19 13:16:28 +00:00
SSAUpdaterBulkTest.cpp
UnrollLoopTest.cpp [SCEV] Add option to forget everything in SCEV. 2019-04-12 19:16:07 +00:00
ValueMapperTest.cpp