1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/lib/Transforms/InstCombine
Jakub Kuderski 300700e70f [InstCombine] Improve infinite loop detection
Summary:
This patch limits the default number of iterations performed by InstCombine. It also exposes a new option that allows to specify how many iterations is considered getting stuck in an infinite loop.

Based on experiments performed on real-world C++ programs, InstCombine seems to perform at most ~8-20 iterations, so treating 1000 iterations as an infinite loop seems like a safe choice. See D71145 for details.

The two limits can be specified via command line options.

Reviewers: spatel, lebedev.ri, nikic, xbolva00, grosser

Reviewed By: spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71673
2019-12-20 16:15:04 -05:00
..
CMakeLists.txt [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
InstCombineAddSub.cpp [InstCombine] Invert add A, sext(B) --> sub A, zext(B) canonicalization (to sub A, zext B -> add A, sext B) 2019-12-05 21:21:30 +03:00
InstCombineAndOrXor.cpp [InstCombine] conditional sign-extend of high-bit-extract: 'or' pattern. 2019-10-20 20:52:06 +00:00
InstCombineAtomicRMW.cpp [Alignment][NFC] Remove StoreInst::setAlignment(unsigned) 2019-10-03 13:17:21 +00:00
InstCombineCalls.cpp [IR] Split out target specific intrinsic enums into separate headers 2019-12-11 18:02:14 -08:00
InstCombineCasts.cpp [InstCombine] Insert instructions before adding them to worklist 2019-12-18 14:55:41 -05:00
InstCombineCompares.cpp Reland [DataLayout] Fix occurrences that size and range of pointers are assumed to be the same. 2019-12-13 14:30:21 +00:00
InstCombineInternal.h Revert "[InstCombine] Fold PHIs with equal incoming pointers" 2019-11-14 17:42:01 +07:00
InstCombineLoadStoreAlloca.cpp [InstCombine] Teach removeBitcastsFromLoadStoreOnMinMax not to change the size of a store. 2019-12-16 12:12:54 -08:00
InstCombineMulDivRem.cpp [InstCombine] fix undef propagation for vector urem transform (PR44186) 2019-12-02 12:17:38 -05:00
InstCombinePHI.cpp [InstCombine] Don't use getFirstNonPHI in FoldIntegerTypedPHI 2019-11-14 17:52:01 -08:00
InstCombineSelect.cpp [InstCombine] Expand usub_sat patterns to handle constants 2019-11-30 16:58:01 +00:00
InstCombineShifts.cpp [InstCombine] prevent crashing/assert on shift constant expression (PR44028) 2019-11-17 17:31:09 -05:00
InstCombineSimplifyDemanded.cpp [InstCombine] Canonicalize select immediates 2019-12-19 12:36:46 +00:00
InstCombineTables.td
InstCombineVectorOps.cpp [InstCombine] replace shuffle's insertelement operand if inserted scalar is not demanded 2019-12-10 10:10:05 -05:00
InstructionCombining.cpp [InstCombine] Improve infinite loop detection 2019-12-20 16:15:04 -05:00
LLVMBuild.txt