[all-commits] [llvm/llvm-project] 406b60: [InstCombine] Allow to limit the max number of ite...
Jakub Kuderski via All-commits
all-commits at lists.llvm.org
Wed Dec 18 10:55:42 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 406b6019cd2bd50924be11c634b058c01053fbd3
https://github.com/llvm/llvm-project/commit/406b6019cd2bd50924be11c634b058c01053fbd3
Author: Jakub Kuderski <kubak at google.com>
Date: 2019-12-18 (Wed, 18 Dec 2019)
Changed paths:
M llvm/include/llvm/Transforms/InstCombine/InstCombine.h
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
A llvm/test/Transforms/InstCombine/limit-max-iterations.ll
Log Message:
-----------
[InstCombine] Allow to limit the max number of iterations
Summary:
This patch teaches InstCombine to accept a new parameter: maximum number of iterations over functions.
InstCombine tries to simplify instructions by iterating over the whole function until the function stops changing. As a consequence, the last iteration before reaching a fixpoint visits all instructions in the worklist and never performs any rewrites.
Bounding the number of iterations can have 2 benefits:
* In case the users of the pass can make a good guess about the number of required iterations, we can save the time normally spent on the last iteration that doesn't change anything.
* When the wants to use InstCombine as a cleanup pass, it may be enough to run just a few iterations and stop even before reaching a fixpoint. This can be also useful for implementing a lightweight pass pipeline (think `-O1`).
This patch does not change the behavior of opt or Clang -- limiting the number of iterations is entirely opt-in.
Reviewers: fhahn, davide, spatel, foad, nlopes, grosser, lebedev.ri, nikic, xbolva00
Reviewed By: spatel
Subscribers: craig.topper, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71145
More information about the All-commits
mailing list