diff options
author | Jakub Kuderski <kubak@google.com> | 2019-12-18 13:48:54 -0500 |
---|---|---|
committer | Jakub Kuderski <kubak@google.com> | 2019-12-18 13:48:54 -0500 |
commit | 406b6019cd2bd50924be11c634b058c01053fbd3 (patch) | |
tree | 4d74b0b31b2b0278055dd877600b2c56c0b1fb12 /llvm/lib/Support/VirtualFileSystem.cpp | |
parent | b6e90a1a1093210784ed3614b51ebcc31c2a1dcf (diff) | |
download | llvm-406b6019cd2bd50924be11c634b058c01053fbd3.zip llvm-406b6019cd2bd50924be11c634b058c01053fbd3.tar.gz llvm-406b6019cd2bd50924be11c634b058c01053fbd3.tar.bz2 |
[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
Diffstat (limited to 'llvm/lib/Support/VirtualFileSystem.cpp')
0 files changed, 0 insertions, 0 deletions