10 Commits

Author SHA1 Message Date
Aleksandr Popov
483e92468e
[NFC] Extract LoopConstrainer from IRCE to reuse it outside the pass (#70508)
Co-authored-by: Aleksandr Popov <apopov@azul.com>
2023-10-31 18:16:59 +01:00
Philip Reames
f8742b8d6a
[SCEV] Teach SCEVExpander to use zext nneg when possible (#70815)
zext nneg was recently added to the IR in #67982. Teaching SCEVExpander
to emit nneg when possible is valuable since SCEV may have proved
non-trivial facts about loop bounds which would otherwise be lost when
materializing the value.
2023-10-31 09:33:07 -07:00
Max Kazantsev
7d7b178d75 [IRCE][Test] Add test showing that fake wide exit does not inhibit the transform 2023-04-13 13:33:21 +07:00
Max Kazantsev
05e4c0142d [Test] Regenerate test checks using auto-updater 2023-04-13 13:33:14 +07:00
Roman Lebedev
0ec421d024
[NFC] Port all IRCE tests to -passes= syntax 2022-12-08 02:38:44 +03:00
Matt Arsenault
631432a3f5 IRCE: Convert tests to opaque pointers 2022-11-28 09:35:16 -05:00
Alina Sbirlea
67904db23c [IRCE] Make IRCE a Function pass.
Summary: Make InductiveRangeCheckElimination a FunctionPass.

Reviewers: reames, mkazantsev

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73592
2020-02-05 09:22:41 -08:00
Eric Christopher
cee313d288 Revert "Temporarily Revert "Add basic loop fusion pass.""
The reversion apparently deleted the test/Transforms directory.

Will be re-reverting again.

llvm-svn: 358552
2019-04-17 04:52:47 +00:00
Eric Christopher
a863435128 Temporarily Revert "Add basic loop fusion pass."
As it's causing some bot failures (and per request from kbarton).

This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda.

llvm-svn: 358546
2019-04-17 02:12:23 +00:00
Max Kazantsev
d9aee3c0d1 [IRCE] Support narrow latch condition for wide range checks
This patch relaxes restrictions on types of latch condition and range check.
In current implementation, they should match. This patch allows to handle
wide range checks against narrow condition. The motivating example is the
following:

  int N = ...
  for (long i = 0; (int) i < N; i++) {
    if (i >= length) deopt;
  }

In this patch, the option that enables this support is turned off by
default. We'll wait until it is switched to true.

Differential Revision: https://reviews.llvm.org/D56837
Reviewed By: reames

llvm-svn: 351926
2019-01-23 07:20:56 +00:00