History log of /llvm-project/llvm/lib/Transforms/Scalar/LoopInterchange.cpp (Results 126 – 150 of 178)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3
# cd783453 25-Aug-2017 Florian Hahn <florian.hahn@arm.com>

[LoopInterchange] Skip zext instructions when looking for induction var.

Summary:
SimplifyIndVar may introduce zext instructions to widen arguments of the
loop exit check. They should not prevent us

[LoopInterchange] Skip zext instructions when looking for induction var.

Summary:
SimplifyIndVar may introduce zext instructions to widen arguments of the
loop exit check. They should not prevent us from splitting the loop at
the induction variable, but maybe the check should be more conservative,
e.g. making sure it only extends arguments used by a comparison?

Reviewers: karthikthecool, mcrosier, mzolotukhin

Reviewed By: mcrosier

Subscribers: mzolotukhin, llvm-commits

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

llvm-svn: 311783

show more ...


Revision tags: llvmorg-5.0.0-rc2
# 4284049d 31-Jul-2017 Florian Hahn <florian.hahn@arm.com>

[LoopInterchange] Do not interchange loops with function calls.

Summary:
Without any information about the called function, we cannot be sure
that it is safe to interchange loops which contain funct

[LoopInterchange] Do not interchange loops with function calls.

Summary:
Without any information about the called function, we cannot be sure
that it is safe to interchange loops which contain function calls. For
example there could be dependences that prevent interchanging between
accesses in the called function and the loops. Even functions without any
parameters could cause problems, as they could access memory using
global pointers.

For now, I think it is only safe to interchange loops with calls marked
as readnone.

With this patch, the LLVM test suite passes with `-O3 -mllvm
-enable-loopinterchange` and LoopInterchangeProfitability::isProfitable
returning true for all loops. check-llvm and check-clang also pass when
bootstrapped in a similar fashion, although only 3 loops got
interchanged.

Reviewers: karthikthecool, blitz.opensource, hfinkel, mcrosier, mkuper

Reviewed By: mcrosier

Subscribers: mzolotukhin, llvm-commits

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

llvm-svn: 309547

show more ...


Revision tags: llvmorg-5.0.0-rc1
# f66efd61 24-Jul-2017 Florian Hahn <florian.hahn@arm.com>

[LoopInterchange] Update code to use range-based for loops (NFC).

Summary:
The remaining non range-based for loops do not iterate over full ranges,
so leave them as they are.

Reviewers: karthikthec

[LoopInterchange] Update code to use range-based for loops (NFC).

Summary:
The remaining non range-based for loops do not iterate over full ranges,
so leave them as they are.

Reviewers: karthikthecool, blitz.opensource, mcrosier, mkuper, aemerson

Reviewed By: aemerson

Subscribers: aemerson, mzolotukhin, llvm-commits

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

llvm-svn: 308872

show more ...


# ad993521 15-Jul-2017 Florian Hahn <florian.hahn@arm.com>

[LoopInterchange] Add some optimization remarks.

Reviewers: anemet, karthikthecool, blitz.opensource

Reviewed By: anemet

Subscribers: mzolotukhin, llvm-commits

Differential Revision: https://revi

[LoopInterchange] Add some optimization remarks.

Reviewers: anemet, karthikthecool, blitz.opensource

Reviewed By: anemet

Subscribers: mzolotukhin, llvm-commits

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

llvm-svn: 308094

show more ...


# 4eeff394 03-Jul-2017 Florian Hahn <florian.hahn@arm.com>

[LoopInterchange] Add more debug messages to currentLimitations().

Summary: This makes it easier to find out which limitation prevented this pass from doing its work.

Reviewers: karthikthecool, mz

[LoopInterchange] Add more debug messages to currentLimitations().

Summary: This makes it easier to find out which limitation prevented this pass from doing its work.

Reviewers: karthikthecool, mzolotukhin, efriedma, mcrosier

Reviewed By: mcrosier

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 307035

show more ...


Revision tags: llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2, llvmorg-4.0.1-rc1, llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3, llvmorg-4.0.0-rc2
# 9d8f6f8a 29-Jan-2017 Davide Italiano <davide@freebsd.org>

Remove inclusion of SSAUpdater from several passes.

It is, in fact, unused. Found while reviewing Danny's new
SSAUpdater and porting passes to it to see how the new API
looked like.

llvm-svn: 293407


Revision tags: llvmorg-4.0.0-rc1
# aec2fa35 19-Dec-2016 Daniel Jasper <djasper@google.com>

Revert @llvm.assume with operator bundles (r289755-r289757)

This creates non-linear behavior in the inliner (see more details in
r289755's commit thread).

llvm-svn: 290086


# 3ca4a6bc 15-Dec-2016 Hal Finkel <hfinkel@anl.gov>

Remove the AssumptionCache

After r289755, the AssumptionCache is no longer needed. Variables affected by
assumptions are now found by using the new operand-bundle-based scheme. This
new scheme is mo

Remove the AssumptionCache

After r289755, the AssumptionCache is no longer needed. Variables affected by
assumptions are now found by using the new operand-bundle-based scheme. This
new scheme is more computationally efficient, and also we need much less
code...

llvm-svn: 289756

show more ...


Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1
# fca1ff0d 03-Nov-2016 Chandler Carruth <chandlerc@gmail.com>

Fix a bug found by inspection by PVS-Studio.

This condition is trivially always true prior to the change. The comment
at the call site makes it clear that we expect *all* of these to be '=',
'S', or

Fix a bug found by inspection by PVS-Studio.

This condition is trivially always true prior to the change. The comment
at the call site makes it clear that we expect *all* of these to be '=',
'S', or 'I' so fix the code.

We have a bug I will update to track the fact that Clang doesn't warn on
this: http://llvm.org/PR13101

llvm-svn: 285930

show more ...


# 00eb8db3 21-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Track all dependencies, not just anti dependencies.

Currently, we give up on loop interchange if we encounter a flow dependency
anywhere in the loop list. Worse yet, we don't even

[LoopInterchange] Track all dependencies, not just anti dependencies.

Currently, we give up on loop interchange if we encounter a flow dependency
anywhere in the loop list. Worse yet, we don't even track output dependencies.

This patch updates the dependency matrix computation to track flow and output
dependencies in the same way we track anti dependencies.

This improves an internal workload by 2.2x.

Note the loop interchange pass is off by default and it can be enabled with
'-mllvm -enable-loopinterchange'

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

llvm-svn: 282101

show more ...


# f7c76f91 21-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Various cleanup. NFC.

llvm-svn: 282071


# e6b3a63a 14-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Typo. NFC.

llvm-svn: 281501


# 72431890 14-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Add CL option to override cost threshold.

Mostly useful for getting consistent lit testing.

llvm-svn: 281500


# 58ede270 14-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Cleanup debug whitespace. NFC.

llvm-svn: 281497


# 7ea0d394 13-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Minor refactor. NFC.

llvm-svn: 281334


# 61683a22 13-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

Don't use else if after return. Tidy comments. NFC.

llvm-svn: 281331


# d18ea065 13-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

Typo. NFC.

llvm-svn: 281330


# 09c1109b 13-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Tidy up and remove unnecessary dyn_casts. NFC.

llvm-svn: 281328


# a4c42465 12-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Improve debug output. NFC.

llvm-svn: 281212


# 13bc0d19 07-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

Typo. NFC.

llvm-svn: 280834


# 90bcb917 07-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Improve debug output. NFC.

llvm-svn: 280820


# f5814f56 07-Sep-2016 Chad Rosier <mcrosier@codeaurora.org>

[LoopInterchange] Improve debug output. NFC.

llvm-svn: 280819


Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2
# 0a16c228 11-Aug-2016 David Majnemer <david.majnemer@gmail.com>

Use range algorithms instead of unpacking begin/end

No functionality change is intended.

llvm-svn: 278417


Revision tags: llvmorg-3.9.0-rc1
# 376a18bd 24-Jul-2016 Elena Demikhovsky <elena.demikhovsky@intel.com>

[Loop Vectorizer] Handling loops FP induction variables.

Allowed loop vectorization with secondary FP IVs. Like this:
float *A;
float x = init;
for (int i=0; i < N; ++i) {
A[i] = x;
x -= fp_inc;

[Loop Vectorizer] Handling loops FP induction variables.

Allowed loop vectorization with secondary FP IVs. Like this:
float *A;
float x = init;
for (int i=0; i < N; ++i) {
A[i] = x;
x -= fp_inc;
}

The auto-vectorization is possible when the induction binary operator is "fast" or the function has "unsafe" attribute.

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

llvm-svn: 276554

show more ...


# 135f735a 26-Jun-2016 Benjamin Kramer <benny.kra@googlemail.com>

Apply clang-tidy's modernize-loop-convert to most of lib/Transforms.

Only minor manual fixes. No functionality change intended.

llvm-svn: 273808


12345678